Kodokon kodokon.com

อินเทอร์เน็ตทำงานอย่างไร: ไคลเอนต์ เซิร์ฟเวอร์ และคำขอ

ทำความเข้าใจว่าใครขออะไรจากใคร เมื่อหน้าเว็บปรากฏขึ้นบนหน้าจอของคุณ

7 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

ลองนึกภาพร้านอาหาร คุณนั่งลง คุณเรียกพนักงาน คุณสั่งอาหาร แล้วพนักงานก็ยกมาเสิร์ฟให้คุณ เว็บทำงานแบบเดียวกันเป๊ะ ๆ คุณกับเบราว์เซอร์ของคุณคือ ไคลเอนต์: คุณคือฝ่ายที่เป็นคนขอ ส่วนอีกฝั่งหนึ่งคือ เซิร์ฟเวอร์: คอมพิวเตอร์ที่เปิดอยู่ตลอดยี่สิบสี่ชั่วโมง ตั้งอยู่ที่ไหนสักแห่งในอาคารที่มีเครื่องปรับอากาศ และมีหน้าที่เดียวคือรอรับคำขอแล้วตอบกลับ เซิร์ฟเวอร์ไม่มีอะไรวิเศษเลย: มันคือเครื่องเหมือนของคุณนี่แหละ เพียงแต่มันไม่เคยหลับและไม่มีหน้าจอ

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

เพื่อให้คำขอไปถึงปลายทาง ทุกเครื่องที่เชื่อมต่ออยู่จะมี ที่อยู่ IP: ชุดตัวเลขที่ทำหน้าที่เหมือนที่อยู่ทางไปรษณีย์ ตัวอย่างเช่น 93.184.215.14 ข้อความของคุณไม่ได้ถูกส่งไปทั้งก้อน: มันถูกหั่นเป็นชิ้นเล็ก ๆ ที่เรียกว่า แพ็กเก็ต ซึ่งแต่ละชิ้นเดินทางตามเส้นทางของตัวเองผ่านเครื่องตัวกลางหลายสิบเครื่อง แล้วจึงถูกประกอบกลับตามลำดับที่ถูกต้องเมื่อไปถึงปลายทาง คุณตรวจสอบได้ว่าเครื่องหนึ่งตอบสนองหรือไม่ด้วยคำสั่ง ping

BASH
ping -c 2 example.com

PING example.com (23.215.0.136): 56 data bytes
64 bytes from 23.215.0.136: icmp_seq=0 ttl=54 time=17.3 ms
64 bytes from 23.215.0.136: icmp_seq=1 ttl=54 time=16.9 ms

--- example.com ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
บน Windows ให้เขียน ping -n 2 example.com ที่อยู่ IP ที่คุณเห็นอาจต่างออกไป: นั่นเป็นเรื่องปกติ

แล้วเซิร์ฟเวอร์ส่งอะไรกลับมากันแน่? ข้อความ ไงล่ะ หน้าเว็บไม่ได้เป็นอะไรมากไปกว่าไฟล์ข้อความที่เขียนด้วย HTML ซึ่งเซิร์ฟเวอร์ส่งมาให้คุณ และเบราว์เซอร์ของคุณเป็นคนจัดวางให้สวยงาม คุณเห็นสิ่งนี้ได้ด้วยตาตัวเองโดยไม่ต้องใช้เบราว์เซอร์เลย ด้วยเครื่องมือ curl ซึ่งส่งคำขอออกไปแล้วพิมพ์การตอบกลับดิบ ๆ ออกมาในเทอร์มินัล

BASH
curl -s https://example.com | head -n 5

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <meta charset="utf-8" />
curl ขอหน้าเว็บมา ส่วน head -n 5 แสดงเพียง 5 บรรทัดแรกเท่านั้น

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. ในการแลกเปลี่ยนบนเว็บ ใครเป็นฝ่ายเริ่มก่อน?
    • เซิร์ฟเวอร์ ซึ่งส่งหน้าเว็บออกมาเมื่อไรก็ได้ที่มันตัดสินใจ
    • ไคลเอนต์ นั่นก็คือเบราว์เซอร์ของคุณ
    • เราเตอร์ที่บ้าน ซึ่งเป็นคนแจกจ่ายหน้าเว็บ
  2. เว็บเซิร์ฟเวอร์คืออะไร?
    • คอมพิวเตอร์ที่เปิดอยู่ตลอดยี่สิบสี่ชั่วโมงและคอยตอบคำขอ
    • สายเคเบิลที่เชื่อมบ้านของคุณเข้ากับเครือข่าย
    • โปรแกรมที่แสดงหน้าเว็บบนหน้าจอของคุณ
  3. หน้าเว็บหนึ่งมีสไตล์ชีตหนึ่งไฟล์และรูปภาพสามรูป เบราว์เซอร์ส่งคำขอออกไปประมาณกี่ครั้ง?
    • แค่ครั้งเดียว ทุกอย่างมาพร้อมกันหมด
    • สองครั้ง: หน้าเว็บ แล้วก็ไฟล์ที่มัดรวมกันมา
    • อย่างน้อยห้าครั้ง: ไฟล์ละหนึ่งครั้ง