อินเทอร์เน็ต: HTTP และ HTML
ฉันจัสมินค่ะ ผู้จัดการโปรแกรม ฝ่ายวิศวกรรม ที่ XBOX One
ฟีเจอร์ที่เจ๋งที่สุดอันนึงของเรา คือ XBOX Live
เป็นบริการออนไลน์ของเรา ที่เชื่อมต่อเกมเมอร์จากทั่วโลก
ซึ่งต้องพึ่งอินเทอร์เน็ตล้วน ๆ ค่ะ
ไม่ง่ายเลยนะคะ เบื้องหลังก็มีเรื่องราวมากมายค่ะ
อินเทอร์เน็ตเปลี่ยนวิธีการปฏิสัมพันธ์ และการเชื่อมต่อของมนุษย์มาก
แต่มันทำงานยังไง คอมพิวเตอร์ทั่วโลก สื่อสารกันได้ยังไง
มาดูกันที่การท่องเว็บก่อนนะคะ
ก่อนอื่น ก็เปิดเว็บเบราว์เซอร์
ซึ่งเป็นแอปที่เราใช้เข้าหน้าเว็บนั่นเอง
จากนั้นพิมพ์ที่อยู่เว็บหรือ URL ลงไป
ย่อมาจาก Uniform Resource Locator ของเว็บไซต์ที่อยากเข้า
อย่าง tumblr.com
สวัสดีครับ ผมเดวิด คาร์ป ผู้ก่อตั้ง Tumblr
วันนี้เราะมาพูดถึงเว็บเบราว์เซอร์ ที่เราใช้กันทุกวันว่ามันทำงานอย่างไร
คุณคงสงสัยว่าเกิดอะไรขึ้นกันแน่
เวลาพิมพ์ที่อยู่ในเว็บเบราว์เซอร์ และกด enter
มันก็เหลือเชื่ออย่างที่คุณคิดนี่แหละ
จุดนั้นที่คอมพิวเตอร์คุณคุยกับ คอมพิวเตอร์อื่น เรียกว่าเซิร์ฟเวอร์
ที่มักอยู่ห่างออกไปหลายพันไมล์
คอมพิวเตอร์คุณถามหาเว็บไซต์นั้น จากคอมพิวเตอร์เครื่องนั้นในเสี้ยววินาที
เซิร์ฟเวอร์ก็ตอบกลับหาคอมพิวเตอร์คุณ ในภาษาที่เรียกว่า HTTP
HTTP ย่อมาจาก HyperText Transfer Protocol
มองว่าเป็นภาษา ที่คอมพิวเตอร์เครื่องหนึ่งใช้
เพื่อขอเอกสารจาก คอมพิวเตอร์อีกเครื่องก็ได้
ซึ่งก็ตรงไปตรงมาพอสมควร
ถ้าคุณแอบดูบทสนทนาระหว่างคอมพิวเตอร์คุณ กับเว็บเซิร์ฟเวอร์ในอินเทอร์เน็ต
ส่วนมากก็ทำจากสิ่งที่เรียกว่าคำขอ GET
เรียบง่ายมาก แค่มีคำว่า GET
ตามด้วยชื่อเอกสารที่คุณขอ
ถ้าคุณจะล็อกอินใน Tumblr และโหลดหน้าล็อกอินของเรา
ที่คุณทำคือส่งคำขอ GET ไปยังเซิร์ฟเวอร์ ของ Tumblr ที่เขียนว่า GET /login
นั่นจะบอกเซิร์ฟเวอร์ของ Tumblr ว่า
คุณต้องการโค้ด HTML ทั้งหมด สำหรับหน้าล็อกอินของ Tumblr
HTML ย่อมาจาก Hyper Text Markup Language
เหมือนเป็นภาษาที่คุณใช้
บอกเว็บเบราว์เซอร์ว่า จะให้หน้านั้นมีลักษณะยังไง
ลองนึกถึง Wikipedia ที่มีเอกสารง่าย ๆ มากมาย
ตัว HTML คือภาษา ที่ให้ชื่อเรื่องตัวใหญ่และหนา
ให้ฟอนต์เป็นฟอนต์ที่ต้องการ
ให้ลิงก์ข้อความบางส่วนไปยังบางเพจ ให้ข้อความบางส่วนเป็นตัวหนา
ให้อักษรเป็นตัวเอียง ให้ใส่รูปภาพกลางหน้า
ให้ขยับรูปชิดขวา ให้ขยับรูปชิดซ้าย
ข้อความของเว็บเพจ รวมอยู่ใน HTML โดยตรง
แต่ส่วนอื่นอย่างรูปภาพ วีดีโอ เป็นไฟล์แยกที่มี URL เป็นของตัวเอง
ซึ่งต้องทำการขอ
เบราว์เซอร์ส่งคำขอ HTTP แยก สำหรับแต่ละไฟล์
แล้วค่อยแสดงเมื่อไฟล์ไปถึง
หากหน้าเว็บมีรูปภาพมาก
แต่ละอันต้องส่งคำขอ HTTP แยก ทำให้เพจนั้นโหลดช้า
ทีนี้เวลาเราเข้าเว็บไซต์ เราไม่ได้ส่งแต่เพียงคำขอ GET เท่านั้น
บางทีเราก็ส่งข้อมูล เช่นเวลากรอกแบบฟอร์ม หรือพิมพ์คำที่ต้องการค้นหา
เบราว์เซอร์ของคุณจะส่งข้อความนี้ เป็นคำข้อความ
ไปยังเว็บเซิร์ฟเวอร์ที่ใช้คำขอ HTTP POST
สมมติเราลงชื่อเข้าใช้ Tumblr
อย่างแรกที่คุณทำคือคำขอ POST
ซึ่งก็คือ POST ไปยังหน้าเพจของ Tumblr ที่มีข้อมูลติดมาด้วย
มันจะมีอีเมลของคุณ รหัสผ่านของคุณ
อันนั้นจะเข้าเซิร์ฟเวอร์ของ Tumblr
เซิร์ฟเวอร์ของ Tumblr ก็จะรู้ว่า โอเค คุณคือเดวิด
มันจะส่งหน้าเว็บกลับมาเบราว์เซอร์ของคุณ ที่แจ้งว่า สำเร็จ
ลงชื่อเข้าใช้ชื่อเดวิดแล้ว แต่ในหน้าเว็บนั้น
มันจะติดข้อมูลคุกกี้ที่มองไม่เห็นมาด้วย
แต่เบราว์เซอร์คุณเห็นและรู้ว่าต้องบันทึก
นั่นสำคัญมาก เพราะว่า
เป็นทางเดียวที่เว็บไซต์จะจำคุณได้
ข้อมูลคุกกี้นั่นก็เหมือน บัตรประจำตัวของ Tumblr
เป็นตัวเลขที่ระบุว่าคุณคือเดวิด
เว็บเบราว์เซอร์คุณจะยึกตัวเลขนั้น
ต่อไปพอคุณรีเฟรชหรือเข้า Tumblr.com เว็บเบราว์เซอร์คุณก็จะรู้
ว่าต้องติดเลขประจำตัวนี้ไปกับคำขอที่ส่ง ไปยังเซิร์ฟเวอร์ของ Tumblr โดยอัตโนมัติ
ทีนี้เซิร์ฟเวอร์ของ Tumblr ก็เห็นคำร้องนี้จากเบบราว์เซอร์ของคุณ
เห็นเลขประจำตัวและรู้ว่า โอเค คำร้องนี้มาจากเดวิด
อินเทอร์เน็ตนั้นเปิดกว้างมาก
ทุกการเชื่อมต่อมีการแชร์กัน และข้อมูลก็ส่งเป็นข้อความ
ทำให้แฮกเกอร์แอบนำข้อมูลส่วนตัว ที่คุณส่งไปในอินเทอร์เน็ตได้
แต่เว็บไซต์ที่ปลอดภัยจะป้องกันสิ่งนี้ค่ะ
ด้วยการขอให้เว็บเบราว์เซอร์ของคุณ สื่อสารในช่องทางที่ปลอดภัย
ด้วยการใช้สิ่งที่เรียกว่า Secure Sockets Layer
และตัวรับช่วงต่อของมัน Transport Layer Security
จะมองว่า SSL และ TLS เป็นความปลอดภัย อีกชั้นที่หุ้มการสื่อสารของคุณ
เพื่อป้องกันการถูกขโมยข้อมูลก็ได้
SSL และ TLS ใช้งานได้ เมื่อคุณเป็นรูปแม่กุญแจเล็ก ๆ
ในบาร์ที่อยู่เบราว์เซอร์คุณ ข้าง HTTPS
โพรโตคอล HTTPS ทำให้คำขอ HTTP ของคุณ ปลอดภัยและได้รับการปกป้อง
เมื่อเว็บไซต์ขอให้เบราว์เซอร์ของคุณ เชื่อมต่ออย่างปลอดภัย
มันจะออกใบรับรองดิจิทัลให้ก่อน
ซึ่งเหมือนบัตรประชาชนที่พิสูจน์ว่า เว็บไซต์นี้เป็นอย่างที่มันบอกจริง ๆ
ใบรับรองดิจิทัลออกให้โดย หน่วยงานใบรับรองที่เป็นที่ไว้วางใจ
ที่รับรองตัวตนของเว็บไซต์ และออกใบรับรองให้
เหมือนที่รัฐบาลออกบัตรประชาชน หรือพาสปอร์ตให้เรา
หากเว็บไซต์ พยายามทำการเชื่อมต่อที่ปลอดภัย
โดยไม่ได้รับใบรับรองดิจิทัลก่อน เบราว์เซอร์ก็จะเตือนคุณ
นี่แหละค่ะเรื่องพื้นฐานของการเล่นเว็บ
เป็นอินเทอร์เน็ตที่เราเห็นกันทุกวัน
สรุปว่า HTTP และ DNS จัดการการรับส่ง HTML
ไฟล์สื่อหรืออะไรก็ตามในหน้าเว็บ
สิ่งที่ทำให้มันเกิดขึ้นได้คือ TCP/IP และเครือข่ายเราเตอร์
ซึ่งแยกและส่งข้อมูลเป็นแพ็คเก็ตเล็ก ๆ
แพ็คเก็ตพวกนี้ประกอบด้วยเลขฐานสอง
ชุดตัวเลข 1 และ 0 ที่ถูกส่งทางกายภาพ
ผ่านสายไฟ ใยแก้วนำแสง และเครือข่ายไร้สาย
ทีนี้เมื่อได้รู้แล้วว่า อินเทอร์เน็ตเลเยอร์แรกทำงานอย่างไร
คุณก็เชื่อใจมันได้เลย โดยไม่ต้องจำรายละเอียดทั้งหมด
เราเชื่อได้ว่าเลเยอร์ทั้งหมดนั้น จะทำงานร่วมกัน
เพื่อส่งข้อมูลทุกขนาดได้ อย่างน่าเชื่อถือค่ะ