Tech Essentials

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

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

บทที่แล้วเราเปรียบแอปเป็นร้านข้าวแกง วันนี้พาโบรเดินเข้าไปดู "ครัว" กันของจริง

หลายคนได้ยินคำว่า Server ปุ๊บ นึกถึงห้องแอร์เย็นยะเยือก ไฟกะพริบเป็นร้อยดวง ก็ถูกอยู่นะ แต่ความจริงแนวคิดของมันง่ายกว่าที่คิดเยอะเลย


Server คืออะไรกันแน่

Server ก็คือคอมพิวเตอร์เครื่องนึงนี่แหละ แค่ถูกตั้งให้เปิดตลอด 24 ชั่วโมง เพื่อรอ "ให้บริการ" คนอื่น

ต่างจากคอมที่บ้านตรงที่

  • เปิดตลอด ไม่มีปิด (ไม่มีคำว่าเดี๋ยวปิดก่อนนอนนะ)
  • ไม่มีจอ ไม่มีคีย์บอร์ด สั่งงานผ่านเน็ตเอา
  • อะไหล่ทนกว่า ออกแบบมาให้ทำงานหนักยาว ๆ
  • เน็ตแรงและมี IP คงที่

ที่สำคัญคือคำว่า Server หมายถึง บทบาท ไม่ใช่ยี่ห้อ คอมเก่า ๆ ที่บ้านโบรถ้าลงโปรแกรมให้บริการเว็บแล้วเปิดทิ้งไว้ มันก็เป็น Web Server ได้เหมือนกัน จริงจังนะ ไม่ได้ล้อเล่น


Web Server: พนักงานต้อนรับหน้าประตู

หน้าที่มันคือ รับคำขอ (Request) จากเรา แล้วส่งของกลับไป (Response) จบ แค่นั้นเลย

เบราว์เซอร์เซิร์ฟเวอร์Request: ขอหน้า /productsResponse: HTML + รูป + สถานะ 200 OK
ทุกครั้งที่เปิดหน้าเว็บ คือการถาม-ตอบหนึ่งรอบ

ตั้งแต่พิมพ์เว็บจนเห็นหน้าเว็บ เกิดอะไรขึ้นบ้าง

  1. เราพิมพ์ ai4bro.com ในเบราว์เซอร์
  2. เครื่องเราไปถาม DNS ว่า "ai4bro.com เนี่ย IP อะไร" (DNS = สมุดโทรศัพท์ของอินเทอร์เน็ต แปลงชื่อเว็บเป็นเลข)
  3. DNS ตอบกลับมาเป็นเลข IP เช่น 203.0.113.10
  4. เบราว์เซอร์ยิง Request ไปที่ IP นั้น
  5. Web Server รับคำขอ แล้วดูว่าผู้ใช้อยากได้อะไร
  6. ส่งไฟล์กลับมา (HTML, CSS, รูป)
  7. เบราว์เซอร์เอามาประกอบร่างเป็นหน้าเว็บให้เราเห็น

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)
  • คุมสิทธิ์ได้ว่าใครดูอะไรได้บ้าง
ตาราง users
idnameemailcreated_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 + DB
  • +ตั้งง่าย ค่าใช้จ่ายถูก
  • +ไม่มีความหน่วงจากเครือข่าย
  • แย่งทรัพยากรกันเอง
  • เครื่องล่ม = ดับทั้งระบบ
แบบแยกเครื่อง
Web
DB
  • +ขยายแต่ละฝั่งได้อิสระ
  • +ล้อมฐานข้อมูลไว้หลังไฟร์วอลล์ได้
  • ตั้งค่าซับซ้อนกว่า
  • มีความหน่วงจากเครือข่าย
จะวาง Web กับ DB ไว้เครื่องเดียวกันหรือแยก
  1. ความปลอดภัย: Web Server ต้องเปิดให้คนทั้งโลกเข้าถึง แต่ Database ควรหลบอยู่ข้างใน ไม่ให้ใครต่อตรงได้ ถ้าเว็บโดนเจาะ ฐานข้อมูลยังมีกำแพงอีกชั้น
  2. ใช้ทรัพยากรคนละแบบ: Web Server กิน CPU กับแบนด์วิดท์ ส่วน Database กิน RAM กับดิสก์เร็ว ๆ แยกกันจะจูนได้ตรงจุด
  3. ขยายง่ายกว่า: คนเข้าเยอะก็เพิ่ม Web Server หลายตัวมาต่อฐานข้อมูลเดียวกันได้เลย

ศัพท์ที่เจอบ่อย

  • IP Address: เลขที่อยู่ของเครื่องบนเครือข่าย
  • Domain: ชื่อเว็บที่คนจำง่าย เช่น ai4bro.com
  • DNS: ตัวแปลงชื่อโดเมนเป็น IP
  • Port: เลขช่องบริการของเครื่องเดียวกัน (เว็บใช้ 80, HTTPS ใช้ 443, PostgreSQL ใช้ 5432)
  • Cache: เก็บผลที่เพิ่งคิดไว้ก่อน ครั้งหน้าจะได้ตอบไว
  • Backup: สำเนาข้อมูล และที่สำคัญที่สุดคือ ต้องเคยลองกู้จริง ๆ ไม่ใช่แค่มีไฟล์กองไว้แล้วสบายใจ
  • Uptime: เปอร์เซ็นต์เวลาที่ระบบใช้งานได้ปกติ

สรุปให้โบร

Web Server = ด่านหน้ารับคำขอแล้วส่งหน้าเว็บกลับ Database Server = คลังของที่เก็บทุกอย่างไว้อย่างเป็นระเบียบและปลอดภัย

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


👉 บทต่อไป: Programming Language ภาษาไหนเหมาะกับงานอะไร - รู้แล้วว่าระบบทำงานยังไง คราวนี้มาดูว่าเขาใช้ภาษาอะไรสร้างมันขึ้นมา