WEBVTT 00:00:02.719 --> 00:00:07.360 อินเทอร์เน็ต: HTTP และ HTML 00:00:07.360 --> 00:00:12.471 ฉันจัสมินค่ะ ผู้จัดการโปรแกรม ฝ่ายวิศวกรรม ที่ XBOX One 00:00:13.805 --> 00:00:16.642 ฟีเจอร์ที่เจ๋งที่สุดอันนึงของเรา คือ XBOX Live 00:00:16.975 --> 00:00:20.854 เป็นบริการออนไลน์ของเรา ที่เชื่อมต่อเกมเมอร์จากทั่วโลก 00:00:21.104 --> 00:00:23.732 ซึ่งต้องพึ่งอินเทอร์เน็ตล้วน ๆ ค่ะ 00:00:24.066 --> 00:00:28.111 ไม่ง่ายเลยนะคะ เบื้องหลังก็มีเรื่องราวมากมายค่ะ 00:00:29.488 --> 00:00:33.534 อินเทอร์เน็ตเปลี่ยนวิธีการปฏิสัมพันธ์ และการเชื่อมต่อของมนุษย์มาก 00:00:33.700 --> 00:00:39.998 แต่มันทำงานยังไง คอมพิวเตอร์ทั่วโลก สื่อสารกันได้ยังไง 00:00:40.415 --> 00:00:42.834 มาดูกันที่การท่องเว็บก่อนนะคะ 00:00:43.877 --> 00:00:46.129 ก่อนอื่น ก็เปิดเว็บเบราว์เซอร์ 00:00:46.505 --> 00:00:48.840 ซึ่งเป็นแอปที่เราใช้เข้าหน้าเว็บนั่นเอง 00:00:49.591 --> 00:00:52.344 จากนั้นพิมพ์ที่อยู่เว็บหรือ URL ลงไป 00:00:52.595 --> 00:00:56.723 ย่อมาจาก Uniform Resource Locator ของเว็บไซต์ที่อยากเข้า 00:00:56.932 --> 00:00:58.433 อย่าง tumblr.com 00:01:04.106 --> 00:01:06.441 สวัสดีครับ ผมเดวิด คาร์ป ผู้ก่อตั้ง Tumblr 00:01:06.692 --> 00:01:11.071 วันนี้เราะมาพูดถึงเว็บเบราว์เซอร์ ที่เราใช้กันทุกวันว่ามันทำงานอย่างไร 00:01:11.863 --> 00:01:13.907 คุณคงสงสัยว่าเกิดอะไรขึ้นกันแน่ 00:01:14.157 --> 00:01:17.077 เวลาพิมพ์ที่อยู่ในเว็บเบราว์เซอร์ และกด enter 00:01:17.203 --> 00:01:19.454 มันก็เหลือเชื่ออย่างที่คุณคิดนี่แหละ 00:01:19.830 --> 00:01:24.293 จุดนั้นที่คอมพิวเตอร์คุณคุยกับ คอมพิวเตอร์อื่น เรียกว่าเซิร์ฟเวอร์ 00:01:24.543 --> 00:01:26.837 ที่มักอยู่ห่างออกไปหลายพันไมล์ 00:01:27.170 --> 00:01:31.383 คอมพิวเตอร์คุณถามหาเว็บไซต์นั้น จากคอมพิวเตอร์เครื่องนั้นในเสี้ยววินาที 00:01:31.592 --> 00:01:36.430 เซิร์ฟเวอร์ก็ตอบกลับหาคอมพิวเตอร์คุณ ในภาษาที่เรียกว่า HTTP 00:01:36.596 --> 00:01:40.684 HTTP ย่อมาจาก HyperText Transfer Protocol 00:01:40.933 --> 00:01:43.603 มองว่าเป็นภาษา ที่คอมพิวเตอร์เครื่องหนึ่งใช้ 00:01:43.770 --> 00:01:45.814 เพื่อขอเอกสารจาก คอมพิวเตอร์อีกเครื่องก็ได้ 00:01:45.938 --> 00:01:47.774 ซึ่งก็ตรงไปตรงมาพอสมควร 00:01:47.982 --> 00:01:52.862 ถ้าคุณแอบดูบทสนทนาระหว่างคอมพิวเตอร์คุณ กับเว็บเซิร์ฟเวอร์ในอินเทอร์เน็ต 00:01:53.112 --> 00:01:55.323 ส่วนมากก็ทำจากสิ่งที่เรียกว่าคำขอ GET 00:01:55.615 --> 00:01:57.575 เรียบง่ายมาก แค่มีคำว่า GET 00:01:57.784 --> 00:02:00.161 ตามด้วยชื่อเอกสารที่คุณขอ 00:02:00.453 --> 00:02:03.081 ถ้าคุณจะล็อกอินใน Tumblr และโหลดหน้าล็อกอินของเรา 00:02:03.289 --> 00:02:09.962 ที่คุณทำคือส่งคำขอ GET ไปยังเซิร์ฟเวอร์ ของ Tumblr ที่เขียนว่า GET /login 00:02:10.213 --> 00:02:12.090 นั่นจะบอกเซิร์ฟเวอร์ของ Tumblr ว่า 00:02:12.257 --> 00:02:16.845 คุณต้องการโค้ด HTML ทั้งหมด สำหรับหน้าล็อกอินของ Tumblr 00:02:18.180 --> 00:02:21.099 HTML ย่อมาจาก Hyper Text Markup Language 00:02:21.350 --> 00:02:23.435 เหมือนเป็นภาษาที่คุณใช้ 00:02:23.644 --> 00:02:26.313 บอกเว็บเบราว์เซอร์ว่า จะให้หน้านั้นมีลักษณะยังไง 00:02:26.521 --> 00:02:30.591 ลองนึกถึง Wikipedia ที่มีเอกสารง่าย ๆ มากมาย 00:02:30.591 --> 00:02:34.571 ตัว HTML คือภาษา ที่ให้ชื่อเรื่องตัวใหญ่และหนา 00:02:34.905 --> 00:02:36.657 ให้ฟอนต์เป็นฟอนต์ที่ต้องการ 00:02:36.907 --> 00:02:42.287 ให้ลิงก์ข้อความบางส่วนไปยังบางเพจ ให้ข้อความบางส่วนเป็นตัวหนา 00:02:42.537 --> 00:02:45.540 ให้อักษรเป็นตัวเอียง ให้ใส่รูปภาพกลางหน้า 00:02:45.749 --> 00:02:47.918 ให้ขยับรูปชิดขวา ให้ขยับรูปชิดซ้าย 00:02:49.294 --> 00:02:52.506 ข้อความของเว็บเพจ รวมอยู่ใน HTML โดยตรง 00:02:52.798 --> 00:02:57.969 แต่ส่วนอื่นอย่างรูปภาพ วีดีโอ เป็นไฟล์แยกที่มี URL เป็นของตัวเอง 00:02:58.188 --> 00:02:59.471 ซึ่งต้องทำการขอ 00:03:00.222 --> 00:03:03.767 เบราว์เซอร์ส่งคำขอ HTTP แยก สำหรับแต่ละไฟล์ 00:03:04.017 --> 00:03:06.103 แล้วค่อยแสดงเมื่อไฟล์ไปถึง 00:03:07.729 --> 00:03:10.357 หากหน้าเว็บมีรูปภาพมาก 00:03:10.899 --> 00:03:15.570 แต่ละอันต้องส่งคำขอ HTTP แยก ทำให้เพจนั้นโหลดช้า 00:03:18.615 --> 00:03:23.286 ทีนี้เวลาเราเข้าเว็บไซต์ เราไม่ได้ส่งแต่เพียงคำขอ GET เท่านั้น 00:03:23.704 --> 00:03:28.917 บางทีเราก็ส่งข้อมูล เช่นเวลากรอกแบบฟอร์ม หรือพิมพ์คำที่ต้องการค้นหา 00:03:29.543 --> 00:03:32.212 เบราว์เซอร์ของคุณจะส่งข้อความนี้ เป็นคำข้อความ 00:03:32.462 --> 00:03:36.341 ไปยังเว็บเซิร์ฟเวอร์ที่ใช้คำขอ HTTP POST 00:03:36.591 --> 00:03:38.427 สมมติเราลงชื่อเข้าใช้ Tumblr 00:03:38.677 --> 00:03:40.679 อย่างแรกที่คุณทำคือคำขอ POST 00:03:41.304 --> 00:03:46.268 ซึ่งก็คือ POST ไปยังหน้าเพจของ Tumblr ที่มีข้อมูลติดมาด้วย 00:03:46.518 --> 00:03:48.687 มันจะมีอีเมลของคุณ รหัสผ่านของคุณ 00:03:49.063 --> 00:03:50.647 อันนั้นจะเข้าเซิร์ฟเวอร์ของ Tumblr 00:03:50.856 --> 00:03:53.483 เซิร์ฟเวอร์ของ Tumblr ก็จะรู้ว่า โอเค คุณคือเดวิด 00:03:53.734 --> 00:03:57.571 มันจะส่งหน้าเว็บกลับมาเบราว์เซอร์ของคุณ ที่แจ้งว่า สำเร็จ 00:03:57.821 --> 00:04:00.198 ลงชื่อเข้าใช้ชื่อเดวิดแล้ว แต่ในหน้าเว็บนั้น 00:04:00.449 --> 00:04:03.827 มันจะติดข้อมูลคุกกี้ที่มองไม่เห็นมาด้วย 00:04:03.994 --> 00:04:06.997 แต่เบราว์เซอร์คุณเห็นและรู้ว่าต้องบันทึก 00:04:07.205 --> 00:04:08.415 นั่นสำคัญมาก เพราะว่า 00:04:08.623 --> 00:04:11.001 เป็นทางเดียวที่เว็บไซต์จะจำคุณได้ 00:04:12.085 --> 00:04:15.839 ข้อมูลคุกกี้นั่นก็เหมือน บัตรประจำตัวของ Tumblr 00:04:16.089 --> 00:04:18.383 เป็นตัวเลขที่ระบุว่าคุณคือเดวิด 00:04:18.467 --> 00:04:20.552 เว็บเบราว์เซอร์คุณจะยึกตัวเลขนั้น 00:04:20.927 --> 00:04:25.807 ต่อไปพอคุณรีเฟรชหรือเข้า Tumblr.com เว็บเบราว์เซอร์คุณก็จะรู้ 00:04:26.016 --> 00:04:30.286 ว่าต้องติดเลขประจำตัวนี้ไปกับคำขอที่ส่ง ไปยังเซิร์ฟเวอร์ของ Tumblr โดยอัตโนมัติ 00:04:30.286 --> 00:04:33.940 ทีนี้เซิร์ฟเวอร์ของ Tumblr ก็เห็นคำร้องนี้จากเบบราว์เซอร์ของคุณ 00:04:34.149 --> 00:04:38.028 เห็นเลขประจำตัวและรู้ว่า โอเค คำร้องนี้มาจากเดวิด 00:04:40.489 --> 00:04:42.991 อินเทอร์เน็ตนั้นเปิดกว้างมาก 00:04:43.492 --> 00:04:47.746 ทุกการเชื่อมต่อมีการแชร์กัน และข้อมูลก็ส่งเป็นข้อความ 00:04:48.902 --> 00:04:54.211 ทำให้แฮกเกอร์แอบนำข้อมูลส่วนตัว ที่คุณส่งไปในอินเทอร์เน็ตได้ 00:04:54.711 --> 00:04:57.172 แต่เว็บไซต์ที่ปลอดภัยจะป้องกันสิ่งนี้ค่ะ 00:04:57.339 --> 00:05:00.842 ด้วยการขอให้เว็บเบราว์เซอร์ของคุณ สื่อสารในช่องทางที่ปลอดภัย 00:05:01.051 --> 00:05:03.678 ด้วยการใช้สิ่งที่เรียกว่า Secure Sockets Layer 00:05:03.887 --> 00:05:07.098 และตัวรับช่วงต่อของมัน Transport Layer Security 00:05:07.432 --> 00:05:13.855 จะมองว่า SSL และ TLS เป็นความปลอดภัย อีกชั้นที่หุ้มการสื่อสารของคุณ 00:05:14.231 --> 00:05:16.608 เพื่อป้องกันการถูกขโมยข้อมูลก็ได้ 00:05:16.900 --> 00:05:21.029 SSL และ TLS ใช้งานได้ เมื่อคุณเป็นรูปแม่กุญแจเล็ก ๆ 00:05:21.196 --> 00:05:24.991 ในบาร์ที่อยู่เบราว์เซอร์คุณ ข้าง HTTPS 00:05:25.575 --> 00:05:31.289 โพรโตคอล HTTPS ทำให้คำขอ HTTP ของคุณ ปลอดภัยและได้รับการปกป้อง 00:05:31.998 --> 00:05:35.752 เมื่อเว็บไซต์ขอให้เบราว์เซอร์ของคุณ เชื่อมต่ออย่างปลอดภัย 00:05:36.086 --> 00:05:38.630 มันจะออกใบรับรองดิจิทัลให้ก่อน 00:05:38.839 --> 00:05:43.593 ซึ่งเหมือนบัตรประชาชนที่พิสูจน์ว่า เว็บไซต์นี้เป็นอย่างที่มันบอกจริง ๆ 00:05:44.344 --> 00:05:49.104 ใบรับรองดิจิทัลออกให้โดย หน่วยงานใบรับรองที่เป็นที่ไว้วางใจ 00:05:49.104 --> 00:05:53.395 ที่รับรองตัวตนของเว็บไซต์ และออกใบรับรองให้ 00:05:53.770 --> 00:05:56.565 เหมือนที่รัฐบาลออกบัตรประชาชน หรือพาสปอร์ตให้เรา 00:05:56.857 --> 00:05:59.901 หากเว็บไซต์ พยายามทำการเชื่อมต่อที่ปลอดภัย 00:06:00.151 --> 00:06:04.239 โดยไม่ได้รับใบรับรองดิจิทัลก่อน เบราว์เซอร์ก็จะเตือนคุณ 00:06:06.741 --> 00:06:09.119 นี่แหละค่ะเรื่องพื้นฐานของการเล่นเว็บ 00:06:09.786 --> 00:06:12.080 เป็นอินเทอร์เน็ตที่เราเห็นกันทุกวัน 00:06:12.330 --> 00:06:18.962 สรุปว่า HTTP และ DNS จัดการการรับส่ง HTML 00:06:19.254 --> 00:06:21.506 ไฟล์สื่อหรืออะไรก็ตามในหน้าเว็บ 00:06:21.798 --> 00:06:27.137 สิ่งที่ทำให้มันเกิดขึ้นได้คือ TCP/IP และเครือข่ายเราเตอร์ 00:06:27.429 --> 00:06:31.057 ซึ่งแยกและส่งข้อมูลเป็นแพ็คเก็ตเล็ก ๆ 00:06:31.349 --> 00:06:34.311 แพ็คเก็ตพวกนี้ประกอบด้วยเลขฐานสอง 00:06:34.561 --> 00:06:37.731 ชุดตัวเลข 1 และ 0 ที่ถูกส่งทางกายภาพ 00:06:37.939 --> 00:06:41.693 ผ่านสายไฟ ใยแก้วนำแสง และเครือข่ายไร้สาย 00:06:42.319 --> 00:06:45.972 ทีนี้เมื่อได้รู้แล้วว่า อินเทอร์เน็ตเลเยอร์แรกทำงานอย่างไร 00:06:46.389 --> 00:06:49.309 คุณก็เชื่อใจมันได้เลย โดยไม่ต้องจำรายละเอียดทั้งหมด 00:06:50.060 --> 00:06:52.912 เราเชื่อได้ว่าเลเยอร์ทั้งหมดนั้น จะทำงานร่วมกัน 00:06:53.163 --> 00:06:57.626 เพื่อส่งข้อมูลทุกขนาดได้ อย่างน่าเชื่อถือค่ะ