เบราว์เซอร์ เซิร์ฟเวอร์ และฐานข้อมูลทำงานร่วมกันอย่างไร
ใช้ใน Challenge Day 1 และเป็นพื้นฐานของทุกวัน
ทุกครั้งที่เปิดเว็บ มี 3 ฝ่ายคุยกันอยู่เสมอ: เบราว์เซอร์ ขอข้อมูล เซิร์ฟเวอร์ ตัดสินใจว่าจะตอบอะไร และ ฐานข้อมูล เก็บข้อมูลถาวร เข้าใจภาพนี้แล้ว ทุกเครื่องมือในคอร์สจะมีที่ทางของมัน
At a glance
| ส่วน | หน้าที่ | ในคอร์สคือ |
|---|---|---|
| Browser (Client) | แสดงผล HTML/CSS และรัน JavaScript | Chrome, หน้า React ของคุณ |
| Server | รับ request ประมวลผล แล้วส่ง response กลับ | Next.js บน Vercel, Express API |
| Database | เก็บและค้นหาข้อมูลอย่างถาวร | PostgreSQL บน Supabase |
| ภาษากลาง | HTTP: request และ response | GET /api/products → JSON |
How it works
เกิดอะไรขึ้นตั้งแต่พิมพ์ URL จนเห็นหน้าเว็บ
- DNS: เบราว์เซอร์ถามว่า
natch-soros.vercel.appอยู่ที่ IP ไหน (เหมือนสมุดโทรศัพท์ของอินเทอร์เน็ต) - Request: เบราว์เซอร์ส่ง HTTP request ไปที่เซิร์ฟเวอร์: “ขอหน้า
/projectsหน่อย” - Server: เซิร์ฟเวอร์ประมวลผล ถ้าต้องใช้ข้อมูลก็ query ฐานข้อมูล
- Response: เซิร์ฟเวอร์ตอบกลับพร้อม status code (เช่น
200 OK) และเนื้อหา HTML หรือ JSON - Render: เบราว์เซอร์อ่าน HTML สร้างหน้า ใส่ CSS แล้วรัน JavaScript
Browser ──request──▶ Server ──query──▶ Database
Browser ◀─response── Server ◀──rows─── DatabaseStructure of a URL
URL https://shop.example.com/products/42?color=red#reviews แบ่งเป็นส่วน ๆ แบบนี้
| ส่วน | ตัวอย่าง | ความหมาย |
|---|---|---|
| Protocol | https:// | วิธีคุยกัน (https = เข้ารหัส) |
| Domain | shop.example.com | ชื่อเซิร์ฟเวอร์ ใช้ DNS แปลงเป็น IP |
| Path | /products/42 | หน้าหรือข้อมูลที่ต้องการ |
| Query | ?color=red | ตัวเลือกเพิ่มเติม เช่น ตัวกรอง |
| Fragment | #reviews | ตำแหน่งในหน้า (ไม่ถูกส่งไปเซิร์ฟเวอร์) |
HTTP request และ response
GET /api/products HTTP/1.1
Host: shop.example.com
HTTP/1.1 200 OK
Content-Type: application/json
[{ "id": 1, "name": "Coffee", "price": 60 }]| Method | ความหมาย | Status | ความหมาย |
|---|---|---|---|
GET | ขอดูข้อมูล | 200 | สำเร็จ |
POST | สร้างข้อมูลใหม่ | 201 | สร้างสำเร็จ |
PUT / PATCH | แก้ไขข้อมูล | 404 | ไม่เจอ |
DELETE | ลบข้อมูล | 500 | เซิร์ฟเวอร์พัง |
ลองดูของจริงด้วย DevTools
ไม่ต้องติดตั้งอะไร ทุกเบราว์เซอร์มี DevTools มาให้
เปิด DevTools
กด
F12(Mac:Cmd+Option+I) แล้วไปที่แท็บ Networkรีเฟรชหน้า
จะเห็นทุก request ที่หน้าเว็บส่งออกไป ทั้ง HTML, CSS, รูป และ API
คลิกดู request แรก
ดู Method และ Status code ใน Headers และเนื้อหาที่ได้กลับมาใน Response
ฝึกต่อ
เว็บสำหรับลงมือทำ
เอกสาร · developer.mozilla.orgMDN: How the web works อธิบายทีละขั้น อ่าน 10 นาทีลงมือทำ · cs50.harvard.eduHarvard CS50x คอร์ส CS101 ที่ดีที่สุด ฟรีเอกสาร · developer.mozilla.orgMDN: HTTP status codes รายการ status code ทั้งหมด
วิดีโอเรียนเอง
Next steps
- HTML: สร้างหน้าที่เบราว์เซอร์แสดง
- PERN Stack: สร้างเซิร์ฟเวอร์ของตัวเอง
CS ChallengeLast updated Oct 2026
