Full-Stack PHP 8 ตอนที่ 2: พื้นฐานการทำงานของเว็บไซต์ (Client-Server)

บทความนี้เป็นส่วนหนึ่งของซีรีส์ Full-Stack PHP 8 + Bootstrap 5 + MySQL — สร้างเว็บไซต์แบบ Full Stack ตั้งแต่พื้นฐานจนใช้งานได้จริง พร้อมสร้างและเผยแพร่เว็บไซต์ Portfolio ของตนเอง (เรียบเรียงจากคู่มืออบรมของ Wutthiphon Tassana — Wirabyte CO., LTD.) — ตอนที่ 2/10

ก่อนจะลงมือเขียนเว็บ เราควรเข้าใจก่อนว่าเมื่อเปิดเว็บไซต์หนึ่ง เบื้องหลังเกิดอะไรขึ้นบ้าง การทำงานของเว็บตั้งอยู่บนหลักการที่เรียกว่า Client–Server ซึ่งเป็นการทำงานร่วมกันระหว่าง “ผู้ขอใช้บริการ” และ “ผู้ให้บริการ”

Client และ Server คืออะไร

Client (ผู้ขอใช้บริการ): โปรแกรมที่ผู้ใช้ใช้เปิดเว็บไซต์ ทำหน้าที่ส่งคำขอ (Request) ไปยังเซิร์ฟเวอร์ และแสดงผลลัพธ์ที่ได้กลับมา โปรแกรมฝั่ง Client ที่เราใช้กันก็คือเว็บเบราว์เซอร์ (Web Browser) เช่น Google Chrome, Mozilla Firefox, Microsoft Edge และ Safari

Server (ผู้ให้บริการ): เครื่องคอมพิวเตอร์ที่จัดเก็บเว็บไซต์เอาไว้ คอยรับคำขอ ประมวลผล และส่งผลลัพธ์ (Response) กลับไปยัง Client

เปรียบเทียบง่าย ๆ เหมือนร้านอาหาร ลูกค้า (Client) สั่งอาหาร ครัว (Server)

เป็นผู้ปรุงและเสิร์ฟกลับมาให้

แผนภาพสถาปัตยกรรม Client–Server แสดงการส่ง Request และรับ Response

โปรแกรมที่ทำหน้าที่ต่าง ๆ บนเซิร์ฟเวอร์

บนเซิร์ฟเวอร์มีโปรแกรมหลายตัวทำงานร่วมกัน โดยแต่ละตัวมีหน้าที่เฉพาะดังนี้

  • เว็บเซิร์ฟเวอร์ (Web Server): รับคำขอจาก Client และส่งผลลัพธ์กลับไป เช่น Apache, Nginx, Microsoft IIS
  • ภาษาฝั่งเซิร์ฟเวอร์ / ตัวประมวลผล (Server-side Language): ประมวลผลคำสั่งและสร้างหน้าเว็บแบบเปลี่ยนแปลงได้ เช่น PHP, Node.js, Python
  • ระบบจัดการฐานข้อมูล (Database Server): จัดเก็บและค้นคืนข้อมูล เช่น MySQL, MariaDB, PostgreSQL
  • เครื่องมือจัดการฐานข้อมูลผ่านหน้าเว็บ: phpMyAdmin ช่วยให้จัดการฐานข้อมูล MySQL ได้สะดวกผ่านหน้าเว็บ

โปรแกรมจำลองเซิร์ฟเวอร์บนเครื่องตนเอง: XAMPP รวม Apache, PHP, MySQL และ phpMyAdmin ไว้ในชุดเดียว ทำให้คอมพิวเตอร์ของเราทำหน้าที่เป็นทั้ง Client และ Server เพื่อทดสอบงานได้โดยไม่ต้องมีเซิร์ฟเวอร์จริง

โปรแกรมแต่ละตัวตามแต่ละหมวดหมู่

เว็บแบบ Static และ Dynamic

  • เว็บแบบคงที่ (Static): เซิร์ฟเวอร์ส่งไฟล์ HTML, CSS และ JavaScript กลับไปตรง ๆ โดยไม่ประมวลผล เนื้อหาจึงเหมือนเดิมทุกครั้ง เหมาะกับหน้าเว็บที่ข้อมูลไม่เปลี่ยนแปลง
  • เว็บแบบพลวัต (Dynamic): เซิร์ฟเวอร์ประมวลผลด้วยภาษาอย่าง PHP และอาจดึงข้อมูลจากฐานข้อมูลก่อน จึงสร้างหน้าเว็บที่เปลี่ยนแปลงได้ตามข้อมูลหรือตามผู้ใช้ เว็บไซต์ Portfolio ที่เราจะสร้างในซีรีส์นี้เป็นเว็บแบบพลวัต

ขั้นตอนการประมวลผลของหน้าเว็บ (PHP + MySQL)

เมื่อผู้ใช้เปิดหน้าเว็บที่เขียนด้วย PHP ลำดับการทำงานเบื้องหลังเป็นดังนี้

  • ผู้ใช้พิมพ์ที่อยู่เว็บ (URL) หรือคลิกลิงก์บนเบราว์เซอร์ เบราว์เซอร์จึงส่งคำขอ (Request) ไปยังเซิร์ฟเวอร์
  • เว็บเซิร์ฟเวอร์ (Apache) รับคำขอ แล้วส่งไฟล์ .php ต่อให้ตัวประมวลผล PHP
  • PHP ทำงานตามคำสั่งในไฟล์ หากต้องใช้ข้อมูล จะส่งคำสั่ง (Query) ไปยังฐานข้อมูล MySQL
  • MySQL ค้นหาข้อมูลแล้วส่งผลลัพธ์กลับมาให้ PHP
  • PHP นำข้อมูลมาประกอบเป็นหน้า HTML ที่สมบูรณ์
  • เว็บเซิร์ฟเวอร์ส่งหน้า HTML (Response) กลับไปยังเบราว์เซอร์
  • เบราว์เซอร์แปลง HTML, CSS และ JavaScript ให้กลายเป็นหน้าเว็บที่ผู้ใช้มองเห็น (Render)

แผนภาพลำดับการประมวลผล: Browser → Apache → PHP → MySQL แล้วส่งผลกลับมาแสดงผล

localhost คืออะไร

ในซีรีส์นี้ เราจะใช้ XAMPP จำลองเซิร์ฟเวอร์บนเครื่องของเราเอง จึงเข้าถึงเว็บผ่านที่อยู่ http://localhost ซึ่งหมายถึง “เครื่องของเราเอง” โดยคอมพิวเตอร์เครื่องเดียวทำหน้าที่เป็นทั้ง Client (เบราว์เซอร์) และ Server (Apache, PHP, MySQL) ไปพร้อมกัน ทำให้ทดสอบเว็บได้ทันทีก่อนนำขึ้นเผยแพร่จริง (ในทางเครือข่าย IP Address ของ localhost มีค่า = 127.0.0.1)

Wutthiphon Tassana
Wutthiphon Tassana