ในบทความนี้ ผมอยากให้ผู้อ่านได้ภาพแนวคิดพื้นฐานของโลกเว็บ ก่อนหน้านี้ ผมเขียนบทความเรื่องสิ่งฟินๆ ตลาดวันนี้ เช่น Angular journey, React basics ฯลฯ แต่วันนี้ ผมอยากให้ผู้อ่านเข้าใจการเดินทางที่พบก่อนเมื่อกด URL ใดๆ
เนื่องจากหัวข้ออธิบายตัวเอง - เมื่อเรากด URL แล้วเกิดอะไรขึ้น? - เริ่มกันเลย!
ก่อนอภิปราย เกิดอะไรหลังกด URL ต้องผ่านว่า URL จริงๆ คืออะไร และส่วนต่างๆ ของ URL หมายถึงอะไร - ถูกไหม? ไม่เสียเวลา มาเข้าใจ URL ให้มากขึ้น
URL – Uniform Resource Locator
ดู Full Form แล้วเข้าใจเลย: มีตำแหน่งของทรัพยากรที่เราต้องการเข้าถึง เป็น ที่อยู่ของสถานที่ ที่เราอยากไปโต้ตอบหรือหาข้อมูล
ดูชีวิตประจำวัน ถ้าอยากไปบ้านเพื่อนทำงานหรือหาข้อมูล ต้องมีที่อยู่ของพวกเขา เว็บโลกก็เหมือนกัน: ต้องให้ที่อยู่ของเว็บไซต์ที่อยากเข้าถึง เว็บไซต์เหมือนบ้าน และ URL คือที่อยู่
สรีระวิทยาของ URL
ตอนนี้รู้ URL คืออะไร แตวยังไม่รู้ส่วนประกอบ มาเริ่มกัน!
ตัวอย่าง:
https://www.example.com/page1
ส่วนแรกคือ 'https' บอกเบราว์เซอร์ว่าใช้ Protocol ไหน อาจเป็น http, https, ftp ฯลฯ Protocol คือ ชุดกฎ ที่เบราว์เซอร์ใช้สื่อสารผ่านเครือข่าย 'https' คือ เวอร์ชันปลอดภัย แลกเปลี่ยนข้อมูลอย่างปลอดภัย
ส่วนที่สอง www.example.com คือ Domain Name เชื่อมโยงกับบ้านเพื่อน คือที่อยู่เว็บไซต์ ใช้ไปถึงเซิร์ฟเวอร์ (คอมพิวเตอร์ที่ฝึกแล้ว) ที่รับผิดชอบเสิร์ฟข้อมูลเว็บไซต์นั้น รอ! คุณอาจคิด วินาทีก่อนผมบอก URL คือที่อยู่ แตบอกอีกว่า Domain Name ก็คือที่อยู่ คุณอาจสับสน อย่าสับสน!
ความแตกต่างระหว่าง URL และ Domain Name
ความต่างหลักคือ URL คือที่อยู่สมบูรณ์ URL บอกวิธีแลกเปลี่ยนข้อมูล Path หลังถึงเว็บไซต์ แต Domain Name เป็นส่วนหนึ่งของ URL
ใช้ตัวอย่างก่อนหน้าเข้าใจดีกว่า คุณบอกได้ว่าที่อยู่บ้านเพื่อนคือ Domain Name ส่วน URL ไม่ได้แค่บอกที่อยู่บ้านเพื่อน (Domain Name) แตบอกวิธีสื่อสาร เช่น คุยในห้องแยก (ปลอดภัย) หรือหน้าทุกคน (ข้อมูลรั่ว) ยังบอก Path ว่าหลังเข้าบ้าน จะไปส่วนไหนของบ้าน ดังนั้น Domain Name เป็นส่วนของ URL Domain Name พร้อมข้อมูลเพิ่ม = URL
หวังว่าตอนนี้เข้าใจ URL ชัดเจน มาส่วนต่อไป
Domain Name
ส่วนก่อน อธิบาย Domain Name แตไม่ลึก ผมอยากให้เข้าไปลึกมากขึ้น ตามที่บอก Domain Name คือที่อยู่เว็บไซต์ ให้ ตัวตนที่ไม่ซ้ำ (Unique Identity) กับ เว็บไซต์ ในเว็บโลกใหญ่นี้ ไม่มี Domain Name สองตัวเหมือนกัน แต่ - ใช่! มี 'แต่' นี่ไม่ใช่นิยามเดียวของ Domain Name มีอีกเรื่องราวด้านหลัง มาเจอกัน
เรารู้ว่า ตอนกด URL หรือ Domain Name เว็บไซต์เปิดพร้อมเนื้อหา เซิร์ฟเวอร์ (คอมพิวเตอร์ฝึกแล้ว) เสิร์ฟ เรารู้ว่าทุกคอมพิวเตอร์มี IP Address ใช้สื่อสารผ่านอินเทอร์เน็ต เป็นที่อยู่ ตามชื่อ 'IP Address' ตอนเรา กด URL เราจริงๆ แล้ว กด IP Address ของคอมพิวเตอร์ที่รับผิดชอบเสิร์ฟเนื้อหาเว็บไซต์ (Hosting)
แต ตอนนี้คุณอาจคิดว่า ไปไหนหมดเป็นที่อยู่? ทำไม Domain Name ถึงมีอยู่ ถ้ามี IP Address ทำไมไม่ใช้ IP Address เข้าเว็บ?
ใช่! คุณ ใช้ IP Addresses ดึงเนื้อหา เว็บไซต์ได้ แต่จริงๆ!.. คุณจำ IP Address ของทุกเว็บไซต์ได้ไหม? จริงๆ ไม่ได้! ยาก ที่จะ จำ IP Address ทุกเว็บไซต์ ดังนั้น Domain Name จึงมา
เชื่อมโยงกับ Contact List คุณจำเบอร์ทุกคนไม่ได้ แต่จำชื่อได้ แนวคิดเดียวกันใช้ได้ที่นี่ คุณ ไม่สามารถจำ IP Addresses น่ากลัวได้ แต จำ Domain Names ได้ง่าย
ข้อมูลปริมาณมานี้อยู่ใน Database ที่เก็บ Domain Name พร้อม IP Address ระบบที่เก็บ Domain Name พร้อม IP Address เรียกว่า DNS (Domain Name System) (เชื่อว่าคุณเคยได้ยิน)
คิดว่าพอพื้นฐานแล้ว ตอนนี้ Deep Dive กระบวนการตอนกด URL ใดๆ
DNS Lookup หา IP Address
หลังกด URL สิ่งแรกที่ต้องเกิดคือ Resolve IP Address ที่เกี่ยวกับ Domain Name DNS ช่วย Resolve นี้ DNS เหมือน Phone Book และ ช่วยให้ IP Address ที่เกี่ยวกับ Domain Name เหมือน Phone Book ให้เบอร์โทรที่เกี่ยวกับชื่อคน

นี่คือภาพรวม แตมี 4 เลเยอร์ ที่ Domain Name Query ผ่าน มาเข้าใจขั้นตอน:
1. หลังกด URL Browser Cache ถูกตรวจสอบ เบราว์เซอร์เก็บ DNS Records ไว้ระยะเวลาสำหรับเว็บที่เคยเข้า ดังนั้น DNS Query รันที่นี่ก่อนหา IP Address ที่เกี่ยวกับ Domain Name
2. สถานที่ที่สอง DNS Query รันคือ OS Cache ตามด้วย Router Cache
3. ถ้าขั้นตอนข้างต้น DNS Query ไม่ Resolve ได้ จะขอช่วย Resolver Server Resolver Server คือ ISP (Internet Service Provider) Query ส่งไป ISP ที่ DNS Query รันใน ISP Cache
4. ถ้าขั้นตอน 3 ยังไม่เจอ Request ส่งไป Top หรือ Root Server ของ DNS Hierarchy ที่นั่นไม่มี "ไม่เจอ" แต่บอกว่า ข้อมูลนี้ได้จากไหน ถ้าคุณหา IP Address ของ Top Level Domain (.com,.net,.Gov,.org) จะบอก Resolver Server ให้ค้น TLD Server (Top Level Domain)
5. ตอนนี้ Resolver ถาม TLD Server ให้ IP Address ของ Domain Name ของเรา TLD เก็บข้อมูลที่อยู่ Domain Name บอก Resolver ให้ถาม Authoritative Name Server
6. Authoritative Name Server รับผิดชอบรู้ทุกอย่างเกี่ยว Domain Name สุดท้าย Resolver (ISP) ได้ IP Address ที่เกี่ยวกับ Domain Name ส่งกลับไป Browser
หลังได้ IP Address Resolver เก็บใน Cache ตั้งไว้ ถ้า Query เดิมมาอีก ไม่ต้องผ่านขั้นตอนทั้งหมดอีก ให้ IP Address จาก Cache ของพวกเขา
นี่คือขั้นตอนทั้งหมด Resolve IP Address ที่เกี่ยวกับ Domain Name ดูภาพด้านล่างเข้าใจดีกว่า:

TCP Connection เริ่มต้นกับเซิร์ฟเวอร์โดย Browser
เมื่อ IP Address ของคอมพิวเตอร์ (ที่ข้อมูลเว็บไซต์ของคุณอยู่) เจอแล้ว มัน เริ่ม Connection กับมัน เพื่อสื่อสารผ่านเครือข่าย Internet Protocol ถูกปฏิบัติ TCP/IP เป็นโปรโตคอลทั่วไป Connection สร้างระหว่างสองฝ่ายด้วยกระบวนการเรียกว่า 'TCP 3-way Handshake' มาเข้าใจกระบวนการสรุป:
1. Client Computer ส่ง SYN Message หมายถึง คอมพิวเตอร์ตัวที่สองเปิดรับ Connection ใหม่ไหม
2. แล้ว คอมพิวเตอร์อีกตัว ถ้าเปิดรับ Connection ใหม่ ส่ง Acknowledge Message พร้อม SYN Message ด้วย
3. หลังจากนี้ คอมพิวเตอร์ตัวแรก รับข้อความ และ Acknowledge โดย ส่ง ACK Message
เข้าใจดีกว่า ดู Diagram ด้านล่าง

การสื่อสารเริ่มต้น (Request Response Process)
สุดท้าย Connection สร้างระหว่าง Client และ Server ตอนนี้ทั้งคู่สื่อสารและแชร์ข้อมูลได้ หลังเชื่อมต่อสำเร็จ Browser (Client) ส่ง Request ไป Server ว่าอยากได้เนื้อหานี้ Server รู้ทุกอย่างว่าควรส่ง Response อะไรสำหรับแต่ละ Request ดังนั้น Server ตอบกลับ Response มีทุกข้อมูลที่ร้องขอ: หน้าเว็บ Status Code Cache-Control ฯลฯ ตอนนี้ Browser Render เนื้อหาที่ร้องขอ
แค่นี้! กระบวนการยาวนานข้างต้นเกิดขึ้นในไม่กี่วินาที นี่คือคำตอบคำถาม 'เกิดอะไรตอนกด URL ในเบราว์เซอร์?'
ขอบคุณที่อ่าน!