Web Server กับ Database Server มันทำงานยังไง แบบเห็นภาพ

บทที่แล้วเราเปรียบแอปเป็นร้านข้าวแกง วันนี้พาโบรเดินเข้าไปดู "ครัว" กันของจริง
หลายคนได้ยินคำว่า Server ปุ๊บ นึกถึงห้องแอร์เย็นยะเยือก ไฟกะพริบเป็นร้อยดวง ก็ถูกอยู่นะ แต่ความจริงแนวคิดของมันง่ายกว่าที่คิดเยอะเลย
Server คืออะไรกันแน่
Server ก็คือคอมพิวเตอร์เครื่องนึงนี่แหละ แค่ถูกตั้งให้เปิดตลอด 24 ชั่วโมง เพื่อรอ "ให้บริการ" คนอื่น
ต่างจากคอมที่บ้านตรงที่
- เปิดตลอด ไม่มีปิด (ไม่มีคำว่าเดี๋ยวปิดก่อนนอนนะ)
- ไม่มีจอ ไม่มีคีย์บอร์ด สั่งงานผ่านเน็ตเอา
- อะไหล่ทนกว่า ออกแบบมาให้ทำงานหนักยาว ๆ
- เน็ตแรงและมี IP คงที่
ที่สำคัญคือคำว่า Server หมายถึง บทบาท ไม่ใช่ยี่ห้อ คอมเก่า ๆ ที่บ้านโบรถ้าลงโปรแกรมให้บริการเว็บแล้วเปิดทิ้งไว้ มันก็เป็น Web Server ได้เหมือนกัน จริงจังนะ ไม่ได้ล้อเล่น
Web Server: พนักงานต้อนรับหน้าประตู
หน้าที่มันคือ รับคำขอ (Request) จากเรา แล้วส่งของกลับไป (Response) จบ แค่นั้นเลย
ตั้งแต่พิมพ์เว็บจนเห็นหน้าเว็บ เกิดอะไรขึ้นบ้าง
- เราพิมพ์
ai4bro.comในเบราว์เซอร์ - เครื่องเราไปถาม DNS ว่า "ai4bro.com เนี่ย IP อะไร" (DNS = สมุดโทรศัพท์ของอินเทอร์เน็ต แปลงชื่อเว็บเป็นเลข)
- DNS ตอบกลับมาเป็นเลข IP เช่น
203.0.113.10 - เบราว์เซอร์ยิง Request ไปที่ IP นั้น
- Web Server รับคำขอ แล้วดูว่าผู้ใช้อยากได้อะไร
- ส่งไฟล์กลับมา (HTML, CSS, รูป)
- เบราว์เซอร์เอามาประกอบร่างเป็นหน้าเว็บให้เราเห็น
Static กับ Dynamic
- Static (ของสำเร็จรูป): ไฟล์ที่เตรียมไว้แล้ว ใครขอก็ได้อันเดียวกัน เช่น โลโก้ ไฟล์ CSS เร็วปรื๊ด
- Dynamic (สั่งทำสด): ต้องคิดก่อนถึงตอบได้ เช่นหน้า "ออเดอร์ของฉัน" ที่แต่ละคนเห็นไม่เหมือนกัน ต้องวิ่งไปถามฐานข้อมูลก่อน
โปรแกรม Web Server ที่ควรรู้จักไว้
| ชื่อ | จุดเด่น |
|---|---|
| Nginx | เบา เร็ว รับคนเยอะพร้อมกันได้สบาย ฮิตที่สุดตอนนี้ |
| Apache | รุ่นเก๋า ยืดหยุ่น โมดูลเพียบ เอกสารเยอะ |
| Caddy | ตั้งค่าง่ายมาก ทำ HTTPS ให้อัตโนมัติ |
| IIS | ของ Microsoft ใช้กับสาย Windows |
เกร็ด: Web Server กับ Application Server ไม่ใช่ตัวเดียวกันนะ
- Web Server (Nginx) เก่งเรื่องรับคนเยอะ ๆ กับส่งไฟล์
- Application Server (โปรแกรมที่เราเขียน เช่น Django, Node.js) เก่งเรื่องคิด
ของจริงมักใช้คู่กัน โดย Nginx ยืนหน้าคอยรับคน แล้วโยนงานที่ต้องคิดต่อให้ Application Server (ศัพท์เรียกว่าทำหน้าที่ Reverse Proxy)
Database Server: คลังของหลังร้าน
หน้าที่คือเก็บข้อมูลให้เป็นระเบียบ และหาให้เจอเร็วที่สุด
แล้วทำไมไม่เก็บใส่ Excel ล่ะ? เพราะฐานข้อมูลทำสิ่งพวกนี้ได้ ซึ่งไฟล์ธรรมดาทำไม่ไหว
- ค้นในข้อมูลหลายล้านแถวได้ในเสี้ยววินาที
- ให้คนเป็นพันอ่านและเขียนพร้อมกันได้โดยข้อมูลไม่พัง
- รับประกันว่าถ้าโอนเงินแล้วไฟดับกลางคัน เงินจะไม่หายไปดื้อ ๆ (เรียกว่า Transaction)
- คุมสิทธิ์ได้ว่าใครดูอะไรได้บ้าง
| id | name | created_at | |
|---|---|---|---|
| 1 | สมชาย | [email protected] | 2026-01-14 |
| 2 | มานี | [email protected] | 2026-02-03 |
| 3 | ปิติ | [email protected] | 2026-02-28 |
- · คอลัมน์ = ประเภทของข้อมูล
- · แถว = ข้อมูล 1 รายการ
- · id = กุญแจหลัก ห้ามซ้ำกัน
ฐานข้อมูลมี 2 ตระกูลใหญ่
1. SQL / Relational (แบบตาราง)
เก็บเป็นตาราง มีแถวมีคอลัมน์เหมือน Excel แต่โหดกว่าเยอะ และตารางเชื่อมกันได้ เช่น ตารางลูกค้าเชื่อมกับตารางออเดอร์
ตัวอย่าง: PostgreSQL, MySQL / MariaDB, SQL Server, Oracle
เหมาะกับ: ข้อมูลที่มีโครงสร้างชัดและต้องเป๊ะ เช่น ระบบเงิน ระบบสมาชิก ระบบสต็อก
2. NoSQL (แบบไม่ใช่ตาราง)
ยืดหยุ่นกว่า ไม่ต้องล็อกโครงสร้างตายตัว แตกย่อยอีกหลายแบบ
- Document เช่น MongoDB: เก็บเป็นก้อนคล้าย ๆ JSON
- Key-Value เช่น Redis: เก็บคู่ กุญแจ-ค่า เร็วมากเพราะอยู่ในแรม นิยมเอาไปทำแคช
- Vector เช่น pgvector, Pinecone: เก็บข้อมูลเป็นตัวเลขสำหรับงาน AI ค้นด้วยความหมาย
เหมาะกับ: ข้อมูลที่รูปแบบไม่แน่นอน หรืองานที่ต้องการความเร็วสูงมาก
SQL คืออะไร
SQL (อ่านว่า เอส-คิว-แอล หรือ ซีเควล) คือภาษาที่ใช้คุยกับฐานข้อมูล หน้าตาอ่านง่ายกว่าที่คิดนะโบร
SELECT name, email FROM users WHERE province = 'ระยอง';แปลว่า "ขอชื่อกับอีเมล จากตาราง users เอาเฉพาะคนระยอง" แค่นั้นเอง อ่านออกใช่ไหมล่ะ
ทำไมต้องแยก Web Server กับ Database Server
ตอนเว็บยังเล็ก เอาไว้เครื่องเดียวกันได้ ประหยัดกว่า แต่พอโตขึ้นต้องแยก เพราะ
- +ตั้งง่าย ค่าใช้จ่ายถูก
- +ไม่มีความหน่วงจากเครือข่าย
- −แย่งทรัพยากรกันเอง
- −เครื่องล่ม = ดับทั้งระบบ
- +ขยายแต่ละฝั่งได้อิสระ
- +ล้อมฐานข้อมูลไว้หลังไฟร์วอลล์ได้
- −ตั้งค่าซับซ้อนกว่า
- −มีความหน่วงจากเครือข่าย
- ความปลอดภัย: Web Server ต้องเปิดให้คนทั้งโลกเข้าถึง แต่ Database ควรหลบอยู่ข้างใน ไม่ให้ใครต่อตรงได้ ถ้าเว็บโดนเจาะ ฐานข้อมูลยังมีกำแพงอีกชั้น
- ใช้ทรัพยากรคนละแบบ: Web Server กิน CPU กับแบนด์วิดท์ ส่วน Database กิน RAM กับดิสก์เร็ว ๆ แยกกันจะจูนได้ตรงจุด
- ขยายง่ายกว่า: คนเข้าเยอะก็เพิ่ม Web Server หลายตัวมาต่อฐานข้อมูลเดียวกันได้เลย
ศัพท์ที่เจอบ่อย
- IP Address: เลขที่อยู่ของเครื่องบนเครือข่าย
- Domain: ชื่อเว็บที่คนจำง่าย เช่น ai4bro.com
- DNS: ตัวแปลงชื่อโดเมนเป็น IP
- Port: เลขช่องบริการของเครื่องเดียวกัน (เว็บใช้ 80, HTTPS ใช้ 443, PostgreSQL ใช้ 5432)
- Cache: เก็บผลที่เพิ่งคิดไว้ก่อน ครั้งหน้าจะได้ตอบไว
- Backup: สำเนาข้อมูล และที่สำคัญที่สุดคือ ต้องเคยลองกู้จริง ๆ ไม่ใช่แค่มีไฟล์กองไว้แล้วสบายใจ
- Uptime: เปอร์เซ็นต์เวลาที่ระบบใช้งานได้ปกติ
สรุปให้โบร
Web Server = ด่านหน้ารับคำขอแล้วส่งหน้าเว็บกลับ Database Server = คลังของที่เก็บทุกอย่างไว้อย่างเป็นระเบียบและปลอดภัย
สองตัวนี้คุยกันตลอดเวลา ทุกครั้งที่เรากดดูอะไรในเว็บ เบื้องหลังคือการวิ่งไปถามฐานข้อมูลแล้ววิ่งกลับ จบในเวลาไม่ถึงกะพริบตา
👉 บทต่อไป: Programming Language ภาษาไหนเหมาะกับงานอะไร - รู้แล้วว่าระบบทำงานยังไง คราวนี้มาดูว่าเขาใช้ภาษาอะไรสร้างมันขึ้นมา
