Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

ทำความเข้าใจ HTTP: การทำงานและความสำคัญ

จินตนาการบ้านคุณคือคอมพิวเตอร์ขนาดใหญ่ แทนที่จะอยู่ที่ถนน Goodison หรือถนน 4th Avenue ที่อยู่บ้านคุณเป็นตัวเลข เช่น 112.231.31.20

เหมือนในหนังไซไฟ เมืองของคุณประกอบด้วยหุ่นยนต์สูงเทคโนโลยีในท้องฟ้า บินบ้านไปบ้านมา ส่งข้อความและนำคำตอบกลับมา

จินตนาการออกมาหรือยัง?

ภาพรวมการทำงานของอินเทอร์เน็ต

แบบง่ายๆ นี่คือสิ่งที่เกิดเมื่อคุณพิมพ์ที่อยู่เว็บในเบราว์เซอร์:

  • หาที่อยู่ "บ้าน" ที่ต้องการส่งคำขอ
  • ส่งคำขอผ่านไปรษณียบอตหุ่นยนต์
  • รอคำตอบจากไปรษณียบอตหุ่นยนต์อย่างอดทน

ทั้งหมดนี้ถูกซ่อนอยู่จากคุณในฐานะผู้ใช้ปลายทาง คุณพิมพ์ที่อยู่เว็บในเบราว์เซอร์ และหน้าเว็บปรากฏหน้าตา - เหมือนเวทมนตร์

เหมือนเทคโนโลยีที่ก้าวหน้าเพียงพอ ผู้ใช้ทั่วไปไม่สามารถใช้อินเทอร์เน็ตได้โดยไม่มีการสรุปแบบนี้ (Abstraction)

ส่วนใหญ่คุณไม่ต้องกังวลว่าสิ่งอย่างไรทำงานอย่างไร - แค่รู้ว่ามันทำงาน

แต่บางหัวข้อ การเจาะลึกลงไปเข้าใจรายละเอียดจะช่วยได้ หรือขูดคันความอยากรู้

คุณจะไม่เป็นผู้เชี่ยวชาญรายละเอียดเทคนิคของอินเทอร์เน็ตจากการอ่านบทความนี้ - ต้องใช้เวลาและความพยายามมากกว่านี้ - แต่จะได้ภาพรวมและเข้าใจดีขึ้น

หากอยากเรียนรู้เพิ่ม ผมมีเพลย์ลิสต์ YouTube ที่เจาะลึกกว่า

ระบบข้อความ

จากเมตาฟอร์ต้นทาง เราเรียนรู้ว่าอินเทอร์เน็ตประกอบด้วยข้อความที่ส่งผ่านกัน ส่วนใหญ่ส่งด้วยโปรโตคอล HTTP

โปรโตคอล (Protocol) คำที่ดูน่ากลัว คำที่ทำให้ตาตบและปิดเบราว์เซอร์ มาแยกวิเคราะห์ให้เข้าใจง่าย

โปรโตคอลคือคำอ่อนน่ารักสำหรับ "ข้อตกลง" (Agreement)

ทำให้ชัดเจนด้วยการเปรียบเทียบ

สมมติคุณและเพื่อนสนิททิ้งข้อความลับให้กัน พบกระดาษหน้าบ้านเขียน "ballfoot" คุณรู้ว่าเพื่อนอยากไปเล่นฟุตบอลคืนนี้ 20:00

คุณรู้เพราะตกลงกันว่า คำว่า "ballfoot" บนกระดาษส่งมาที่บ้าน = 邀请เล่นฟุตบอล

ปัญหาเกิดเมื่อคุณทิ้งบันทึก "ballfoot" ให้เพื่อนคนอื่นโดยไม่บอกความหมายลับ พวกเขาไม่รู้จะทำอะไรกับข้อมูล

พวกเขาพบบันทึกหน้าบ้าน คิดดูนาที แล้วเล่น Fortnite ในห้องนั่งเล่นต่อ คุณและเพื่อนคนหนึ่งส่งบอลมาส่งไป กลับมาส่งไป จนเบื่อเกินกว่าจะทนได้ แล้วกลับบ้าน

แต่มันไม่จำเป็นต้องเป็นแบบนั้น ถ้าคุณบอกเพื่อนๆ ว่า "ballfoot" หมายถึงอะไร ตอนนี้ทุกคนจะรู้และแบ่งปันข้อตกลงว่า บันทึกคำว่า "ballfoot" = ไปเล่นฟุตบอลสนามท้องถิ่น 20:00

สำเร็จ

นี่คือ - ในหลักสูตร - สิ่งที่โปรโตคอล HTTP แทน เราตกลงกันว่า ถ้าส่งข้อความด้วยวิธีเฉพาะ เซิร์ฟเวอร์จะเข้าใจและตอบกลับ

โครงสร้างของข้อความ

มาดูข้อตกลง HTTP ใกล้ชิด ประกอบด้วยคำขอ (Requests) และคำตอบ (Responses) ง่ายๆ คือคุณขอสิ่งหนึ่ง แล้วได้คำตอบกลับจากสิ่งที่เรียกว่าเซิร์ฟเวอร์ (Server)

ก่อนต่อไป ให้ปรับเมตาฟอร์ต้นทางให้เข้าใจ HTTP Request/Response Cycles ดีกว่า

จำได้ไหมหุ่นยนต์บินบ้านไปบ้านมาส่งข้อความ? ตอนนี้จินตนาการว่าหุ่นยนต์ทั้งหมดเป็นของใครบางคน

คุณมีหุ่นยนต์ส่วนตัว สั่งให้ไปที่ใดก็ได้ (IP Address) พร้อมข้อความ หุ่นยนต์ถึงที่หมายพร้อมข้อความ จะเข้าและประกาศดังว่า มีข้อความส่ง แล้วพูดข้อความนั้น

เพื่อเมตาฟอร์ ทưởng tượngประตูบ้าน (เซิร์ฟเวอร์) เหมือนทางเข้าประตูเหมือง Moria ใน Lord of the Rings เปิดได้ก็ต่อเมื่อพูดคำถูกต้อง

ในกรณีนี้ เปิดได้ก็ต่อเมื่อหุ่นยนต์ของคุณพูดข้อความในรูปแบบเฉพาะ จะได้รับข้อความตอบกลับนำคืนให้คุณ

นี่คือโปรโตคอล HTTP ทำงาน มีชุดกฎกำหนดไว้ล่วงหน้า ว่าข้อความคำขอและคำตอบควรมีรูปแบบอย่างไร

ตอนนี้คุณอาจสงสัยว่าข้อความเหล่านี้มาจากไหน คุณแน่ๆ ไม่ได้เขียนเองเวลาพิมพ์ที่อยู่เว็บในเบราว์เซอร์

มันจัดการให้อัตโนมัติโดยเบราว์เซอร์ เวลาคุณพิมพ์ที่อยู่ เบราว์เซอร์จัดทำข้อความ HTTP Request ให้และส่งไปเซิร์ฟเวอร์ HTTP Request มีลักษณะประมาณนี้:

GET / HTTP/1.1 Host: google.com User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 ...etc

ดูน่ากลัวใช่ไหม?

ขอขอบคุณเบราว์เซอร์ที่ทำให้

มาดูบรรทัดแรกอย่างใกล้ชิด: GET / HTTP/1.1 บรรทัดนี้ทำให้หุ่นยนต์ของคุณไปที่บ้าน Google และพูดว่า "ขอรับสิ่งที่คุณมีที่รากของเว็บไซต์หน่อยได้ไหม?" (หมายถึงต้องการดึงสิ่งที่ www.google.com ไม่ใช่ www.google.com/home)

ตอนนี้เราส่งข้อความไปบ้าน Google (เซิร์ฟเวอร์) ในรูปแบบถูกต้อง ประตูสว่างและเปิดกว้าง

ภายในเห็นหุ่นยนต์อีกตัว หลังมันมีกล่องล็อคมากมาย ติดฉลากข้อความ như GET / HTTP/1.1 และ GET /search HTTP/1.1 ถ้าคำขอของคุณตรงกล่องไหน หุ่นยนต์จะปลดล็อคและให้หุ่นยนต์ของคุณของขวัญในกล่อง ซึ่งจะทำให้มันวิ่งกลับมาหาคุณเร็วพร้อมคำตอบ

คำตอบ (Response)

คำตอบที่คุณได้รับจะมีลักษณะประมาณนี้:

HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT Content-Length: 88 Content-Type: text/html Connection: Closed

คุณจะไม่เห็นคำตอบนี้ เว้นแต่จะอยากตรวจสอบใน Developer Tools ของเบราว์เซอร์ แต่คุณได้รับมันอยู่ดี

สิ่งที่เกิดต่อไป ขึ้นอยู่กับประเภทคำตอบที่ได้ และสิ่งที่อยู่ในกล่องล็อคของเซิร์ฟเวอร์

ในหลายกรณี สิ่งที่ได้รับคือเอกสาร HTML HTML แทนโครงสร้างหน้าเว็บ และกำหนดว่าเบราว์เซอร์ควรแสดงอะไร

ถ้าไป www.google.com จะได้ไฟล์ HTML กลับมา กำหนดว่าจะแสดง google.com ในเบราว์เซอร์อย่างไร

ถ้ามีเวลา วิดีโอ 11 นาทีนี้เจาะลึก HTTP requests และ responses:

สรุป

ในบทความนี้เราทบทวนการทำงานของอินเทอร์เน็ต และการใช้ HTTP สื่อสารบนอินเทอร์เน็ต

เราเรียนรู้ว่าโปรโตคอล HTTP ใช้สื่อสารระหว่างเบราว์เซอร์และเซิร์ฟเวอร์บนอินเทอร์เน็ต ประกอบด้วยมาตรฐานที่ตกลงกันทั่วไปสำหรับการส่งและรับคำขอ

เรายังสำรวจความสำคัญของมาตรฐานการสื่อสาร และประโยชน์ของมาตรฐานที่ตกลงกันทั่วไป

ยังมีมุมมองอื่นมากมายในการเข้าใจการทำงานของอินเทอร์เน็ต และประเภทคำตอบที่ได้รับ

ถ้ามีเวลา วิดีโอ 18 นาทีนี้สอนสร้างเว็บเซิร์ฟเวอร์ จะทบทวนหัวข้อในบทความนี้ และครอบคลุมหัวข้อใหม่:

ตอนนี้คุณควรเข้าใจภาพรวมการสื่อสารบนอินเทอร์เน็ต

ถ้าคิดว่าใครจะได้ประโยชน์จากบทความนี้ โปรดแชร์ และอยากรู้ตอนผมโพสต์ใหม่ สามารถสมัคร YouTube หรือติดตาม @foseberg บน Twitter