เข้าใจภาพรวมของ Website และบทบาทของ Frontend vs Backend
เมื่อเราท่องเว็บในแต่ละวัน เคยสงสัยไหมครับว่าเกิดอะไรขึ้นเบื้องหลังหน้าจอคอมพิวเตอร์หรือโทรศัพท์มือถือของเราบ้าง? ทำไมเมื่อเราพิมพ์คำว่า google.com หรือ cloudysand.dev แล้วกด Enter เพียงเสี้ยววินาที หน้าเว็บที่สวยงามก็ปรากฏขึ้นมาทันที?
ในบทเรียนนี้ เราจะมาถอดรหัสกลไกเบื้องหลังอินเทอร์เน็ต เรียนรู้การเดินทางของข้อมูลผ่าน สมุดโทรศัพท์ออนไลน์ (DNS), เข้าใจวงจร Request-Response บนโปรโตคอล HTTP, และทำความรู้จักกับสองบทบาทที่สำคัญที่สุดในสายงานพัฒนาเว็บ นั่นคือ Frontend (หน้าบ้าน) และ Backend (หลังบ้าน) กันครับ!
🌐 เกิดอะไรขึ้นบ้างเมื่อเราพิมพ์ URL เข้าเว็บไซต์?
กระบวนการทั้งหมดตั้งแต่เริ่มกด Enter จนหน้าเว็บแสดงผลขึ้นมา จะทำงานอยู่บนระบบ Client-Server Architecture (โครงสร้างสถาปัตยกรรมแบบผู้ใช้และผู้ให้บริการ) และโปรโตคอล HTTP/HTTPS ครับ
ลองนึกภาพตามง่ายๆ ว่าคอมพิวเตอร์หรือมือถือของคุณคือ "ลูกค้า (Client)" ที่เดินเข้าไปสั่งอาหารในร้านอาหาร โดยมี "เซิร์ฟเวอร์ (Server)" ทำหน้าที่เป็นห้องครัวคอยเตรียมสิ่งที่คุณต้องการส่งกลับมาให้
เรามาแบ่งขั้นตอนการเดินทางของข้อมูลออกเป็น 4 ขั้นตอนสำคัญกันครับ:
- การวิเคราะห์ชื่อโดเมน (Domain Name Resolution)
- การสอบถามที่อยู่จริงผ่าน DNS (The Internet Phonebook)
- วงจรคำขอและคำตอบ (Request & Response Cycle)
- การวาดหน้าผลลัพธ์ (Client-Side Rendering)
📖 ระบบ DNS และโปรโตคอล HTTP/HTTPS
เมื่อเราป้อนที่อยู่เว็บ เช่น https://google.com เบราว์เซอร์จะแยกข้อมูลนี้ออกเป็นสองส่วนหลัก:
https://: คือโปรโตคอลสำหรับการรับส่งข้อมูลอย่างปลอดภัย (Hypertext Transfer Protocol Secure)google.com: คือชื่อโดเมน (Domain Name) ซึ่งถูกสร้างขึ้นมาเพื่อให้มนุษย์จดจำได้ง่าย
แต่ความเป็นจริง คอมพิวเตอร์ไม่รู้จักชื่อโดเมนครับ! มันรู้จักเพียงแค่ IP Address (เช่น 142.250.190.46) ซึ่งเป็นเหมือนพิกัดบ้านเลขที่ของเครื่องเซิร์ฟเวอร์บนโลกอินเทอร์เน็ต
เบราว์เซอร์จึงต้องส่งข้อมูลไปถาม DNS (Domain Name System) ซึ่งเปรียบเสมือน "สมุดโทรศัพท์ออนไลน์ระดับโลก" เพื่อสอบถามว่า "โดเมนนี้มีบ้านเลขที่ IP อะไร?" เมื่อได้ IP Address กลับมาแล้ว Client จึงพร้อมที่จะเริ่มเดินทางไปยังเป้าหมายจริงครับ
🔄 Request & Response: วงจรการเดินทางของข้อมูล
เมื่อ Client ทราบที่อยู่ IP ของเซิร์ฟเวอร์แล้ว วงจรส่งข้อมูลผ่านโปรโตคอล HTTP ก็จะเริ่มต้นขึ้น:

- Client sends a Request: เบราว์เซอร์ส่งจดหมายคำขอ (HTTP Request) ไปยัง IP ของเซิร์ฟเวอร์เป้าหมาย เช่น "ขอดูดึงหน้าเว็บหลักหน่อยนะ"
- Server processes and responds: เซิร์ฟเวอร์ (คอมพิวเตอร์อีกเครื่องที่เปิดสแตนด์บายไว้ในศูนย์ข้อมูล) จะวิเคราะห์จดหมายคำขอ และประกอบชุดข้อมูลส่งกลับมาเป็น HTTP Response
- Data packages delivered: ข้อมูลที่ส่งกลับมาจะประกอบไปด้วยไฟล์ HTML (โครงสร้าง), CSS (สไตล์และเลย์เอาต์), JavaScript (ปุ่มและการคำนวณ), รูปภาพ หรือไฟล์ JSON (ข้อมูลดิบ)
🖥️ หน้าบ้าน (Frontend) คือส่วนประกอบภายนอก
เมื่อไฟล์ข้อมูลชุดแรกเดินทางมาถึงเครื่อง Client ตัวโปรแกรม Browser (Chrome, Safari, Edge) จะทำหน้าที่นำไฟล์ HTML และ CSS เหล่านั้นมาเรนเดอร์วาดภาพจัดวางลงบนหน้าจอให้กลายเป็นหน้าเว็บจริง (UI)
นี่คือบทบาทสำคัญของ Frontend หรือ ฝั่งหน้าบ้าน ครับ ซึ่งจะรับผิดชอบทุกอย่างที่เกิดขึ้นบนเบราว์เซอร์ของผู้ใช้โดยตรง:
- HTML (Hypertext Markup Language): ทำหน้าที่สร้างโครงสร้างและข้อมูลดิบ เช่น หัวข้อ ย่อหน้า รูปภาพ ปุ่ม (สร้างสิ่งที่เรียกว่า DOM หรือ Document Object Model)
- CSS (Cascading Style Sheets): ทำหน้าที่จัดเลย์เอาต์ ปรับสีสัน ขนาด ตัวอักษร ตกแต่งเอฟเฟกต์ และจัดการให้หน้าจอแสดงผลได้สวยงามบนทุกขนาดหน้าจอ (Responsive Mindset)
- JavaScript (JS): มอบชีวิตและ Logic ให้กับหน้าบ้าน ทำหน้าที่ตอบสนองต่อผู้ใช้งาน เช่น การคลิกปุ่มแล้วเปิดป๊อปอัปขึ้นมา การโหลดข้อมูลเพิ่มโดยไม่ต้องรีโหลดหน้าเว็บ หรือการส่งคำขอข้อมูลข้ามไปยังหลังบ้าน
⚙️ หลังบ้าน (Backend) คือเครื่องยนต์ขับเคลื่อนอยู่ข้างหลัง
หาก Frontend เปรียบเสมือนโครงสร้างตัวถังและสีสันที่สวยงามของรถยนต์ Backend หรือ หลังบ้าน ก็คือ "เครื่องยนต์และเกียร์" ที่ทำงานเงียบๆ อยู่ใต้ฝากระโปรงรถ เพื่อให้รถยนต์สามารถวิ่งไปข้างหน้าได้จริง
Backend จะรันและทำงานอยู่ฝั่ง Server เสมอ ทำหน้าที่จัดการตรรกะข้อมูลขนาดใหญ่ ความปลอดภัย และการเชื่อมต่อกับระบบเก็บข้อมูล:

- Business Logic & API: ประมวลผลและคิดคำนวณกฎเกณฑ์ต่างๆ เช่น การคำนวณราคาสินค้ารวมคูปองลดราคา หรือเปิดช่องทางเชื่อมต่อ (API endpoints) รอรับคำสั่งซื้อจาก Frontend
- Authentication & Security: จัดการระบบความปลอดภัย ตรวจสอบว่าผู้ใช้งานเข้าสู่ระบบถูกต้องหรือไม่ หรือมีสิทธิ์เข้าไปแก้ไขข้อมูลนี้หรือไม่ (Auth & Permissions)
- Database Access: เชื่อมต่อและดึงข้อมูลจาก Database (ฐานข้อมูล) เช่น ดึงประวัติสั่งซื้อ ดึงคลังสินค้าส่งคืนกลับไปให้หน้าบ้านแสดงผล
🤝 Flow การทำงานร่วมกันในโปรเจกต์จริง
ในชีวิตการทำงานจริง นักพัฒนาทั้งสองฝั่งจะต้องออกแบบโปรโตคอลเชื่อมต่อตรงกลางร่วมกัน เรียกว่า API (Application Programming Interface) โดยทำหน้าที่ส่งข้อมูลผ่านรูปแบบมาตรฐาน เช่น REST API (ส่งข้อมูลผ่าน JSON)
เรามาลองแกะโฟลว์การทำงานร่วมกันเมื่อผู้ใช้งานทำแอคชันบนหน้าจอกันครับ:
- ผู้ใช้กระทำการบางอย่าง (User Action): ผู้ใช้กดปุ่ม "เพิ่มเพื่อน" หรือปุ่ม "สั่งซื้อสินค้า" บนหน้าจอเบราว์เซอร์
- Frontend ส่ง Request: โค้ด JavaScript ฝั่งหน้าบ้านจะทำการแพ็กคำสั่งนี้แล้วส่ง HTTP Request ไปยัง URL API หลังบ้าน
- Backend ประมวลผลและบันทึก: เซิร์ฟเวอร์หลังบ้านตรวจสอบความถูกต้อง ดำเนินการตัดสต็อกสินค้าใน Database และอัปเดตสถานะสำเร็จ
- Backend ส่ง Response: หลังบ้านส่ง HTTP Response กลับมาบอกหน้าบ้านว่า "ดำเนินการเสร็จสิ้น 200 OK!"
- Frontend อัปเดตการแสดงผล: โค้ดหน้าบ้านรับข้อมูลสำเร็จแล้วเปลี่ยนรูปปุ่มบนจอเป็นสีเขียว พร้อมแสดงข้อความเตือน (Toast) แจ้งเตือนผู้ใช้ว่าสั่งซื้อสำเร็จ
🏁 บทสรุป & ก้าวต่อไป
ยินดีด้วยครับ! คุณได้เข้าใจโครงสร้างพื้นฐานของสถาปัตยกรรมเว็บไซต์ทั้งหมดเรียบร้อยแล้ว:
- เข้าใจว่า URL วิ่งผ่าน DNS เพื่อหา IP และสื่อสารผ่าน HTTP Request-Response
- เข้าใจความแตกต่างระหว่าง Frontend (สไตล์ หน้าตา พฤติกรรมบน Browser) และ Backend (ระบบ ตรรกะ ฐานข้อมูลบน Server)
- เห็นภาพการต่อประสานงานกันผ่านระบบ API
ในบทถัดไป เราจะมาเจาะลึกในรายละเอียดของ "Protocol และ Port คู่หูผู้คุมกฎการสื่อสาร" เพื่อดูกันว่าทำไมบางครั้งหน้าเว็บถึงขึ้นข้อผิดพลาด 404 Not Found หรือ 500 Internal Server Error กันแน่ และเราจะอ่านค่าเหล่านี้เพื่อตรวจสอบระบบได้อย่างไร เจอกันบทเรียนถัดไปครับ!