ExzLearn

HTTP ทำงานยังไง

เข้าใจว่าตั้งแต่พิมพ์ URL จนหน้าเว็บขึ้น เบราว์เซอร์กับ server คุยอะไรกันบ้าง

พื้นฐาน 4 นาที อัปเดต 25 ต.ค. 2569
สรุปใน 30 วินาที
  • HTTP คือ "ภาษา" ที่เบราว์เซอร์ใช้ขอข้อมูลจาก server แบบ ถาม 1 ครั้ง ตอบ 1 ครั้ง (Request → Response)
  • ทุก Response มี Status Code บอกผล เช่น 200 สำเร็จ, 404 ไม่พบ, 500 server พัง
  • HTTPS = HTTP ที่เข้ารหัสด้วย TLS คนกลางทางจึงแอบอ่านหรือแก้ข้อมูลไม่ได้

ทำไมต้องรู้เรื่องนี้

ทุกอย่างบนเว็บ ทั้งเปิดหน้าเว็บ, เรียก API, โหลดรูป ไปจนถึงเกมที่คุยกับ backend ล้วนวิ่งบน HTTP ถ้าเข้าใจกลไกนี้ เวลาเว็บช้า, ขึ้น error หรือ API ไม่ตอบ คุณจะรู้ทันทีว่าควรเริ่มหาปัญหาจากตรงไหน

เกิดอะไรขึ้นเมื่อพิมพ์ URL

จาก URL ถึงหน้าเว็บ
1พิมพ์ URLlearn.exztech.com
2DNSแปลงชื่อเป็น IP
3เชื่อมต่อTCP + TLS (HTTPS)
4ส่ง RequestGET /
5Server ตอบ200 + HTML
6แสดงผลโหลด CSS / JS / รูป ต่อ
  1. DNS ทำหน้าที่เหมือนสมุดโทรศัพท์ของอินเทอร์เน็ต แปลงชื่อ learn.exztech.com เป็น IP เช่น 168.144.108.204
  2. เบราว์เซอร์ เปิดการเชื่อมต่อ ไปที่ IP นั้น ถ้าเป็น HTTPS จะ "จับมือ" ตกลงกุญแจเข้ารหัสกันก่อน
  3. ส่ง Request ไปบอกว่าต้องการอะไร
  4. Server ส่ง Response กลับมา และถ้า HTML ที่ได้อ้างถึงไฟล์อื่น เบราว์เซอร์ก็จะส่ง Request ต่อไปอีกหลายรอบ

หน้าตาของ Request และ Response

HTTP เป็นข้อความธรรมดาที่คนอ่านออก ประกอบด้วย บรรทัดแรก + Header + Body

http
GET /web/how-http-works/ HTTP/1.1
Host: learn.exztech.com
Accept: text/html
User-Agent: Mozilla/5.0
http
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache

<!doctype html>
<html>...</html>
📤 Request (ขอ)
  • Method: อยากทำอะไร (GET, POST…)
  • Path: ขออะไร (/web/…)
  • Headers: ข้อมูลประกอบ เช่น ภาษา, cookie
  • Body: ข้อมูลที่ส่งไป (มักมากับ POST)
📥 Response (ตอบ)
  • Status Code: ผลลัพธ์ (200, 404…)
  • Headers: ชนิดไฟล์, การ cache
  • Body: เนื้อหาจริง เช่น HTML, JSON, รูป

Method ที่ใช้บ่อย

Method ความหมาย ตัวอย่าง
GET ขอดูข้อมูล (ไม่ควรเปลี่ยนอะไรบน server) เปิดหน้าเว็บ, ดึงรายการสินค้า
POST ส่งข้อมูลใหม่ไปให้ server สมัครสมาชิก, ส่งฟอร์ม
PUT / PATCH แก้ไขข้อมูลที่มีอยู่ แก้โปรไฟล์
DELETE ลบข้อมูล ลบโพสต์

Status Code อ่านยังไง

ดูแค่ ตัวเลขหลักแรก ก็รู้แล้วว่าปัญหาอยู่ฝั่งไหน

2xx
สำเร็จ เช่น 200 OK, 201 Created
3xx
ย้ายที่ ให้ไปขอที่อื่น เช่น 301, 304
4xx
ฝั่งผู้ขอผิด เช่น 404 ไม่พบ, 401 ยังไม่ล็อกอิน
5xx
ฝั่ง server ผิด เช่น 500, 502 Bad Gateway

HTTP กับ HTTPS ต่างกันยังไง

HTTP เดิมส่งข้อความแบบเปิดเผย ใครที่อยู่กลางทาง เช่นคนใน Wi-Fi สาธารณะเดียวกัน ก็อ่านได้หมด HTTPS ห่อ HTTP ไว้ด้วย TLS ทำให้ได้ 2 อย่าง

  • เข้ารหัส: คนกลางทางอ่านไม่ออก
  • ยืนยันตัวตน: ใบรับรอง (certificate) พิสูจน์ว่าเรากำลังคุยกับ server ตัวจริง

ลองดูของจริง

เปิดหน้าเว็บไหนก็ได้แล้วกด F12 → แท็บ Network แล้วรีเฟรช จะเห็นทุก Request ที่เบราว์เซอร์ส่งออกไป พร้อม Status Code และเวลาที่ใช้ หรือใช้ curl ใน terminal

bash
curl -I https://learn.exztech.com

-I บอก curl ให้ขอแค่ Header กลับมา จึงเห็น Status Code กับ Header ได้ชัดๆ

ข้อผิดพลาดที่เจอบ่อย

ทบทวน

ทบทวน 1
ผู้ใช้เปิดหน้าเว็บแล้วเจอ 502 Bad Gateway ควรเริ่มหาปัญหาที่ไหนก่อน?
ทบทวน 2
HTTPS ช่วยป้องกันอะไร?
#http#web#network