SuperJane website logo
HTTPHeaders

Response Headers 🎯

เรียนรู้เกี่ยวกับ Response Headers และบทบาทของมันใน HTTP

Response Headers 🎯

📌 Response Headers คืออะไร?

Response Headers เป็นชุดของข้อมูลที่เซิร์ฟเวอร์ส่งกลับไปยังไคลเอนต์ (เบราว์เซอร์หรือ API) เพื่อแจ้งรายละเอียดเกี่ยวกับการตอบกลับ HTTP เช่น ประเภทของเนื้อหา (Content-Type), สถานะของการร้องขอ (Status Code), หรือเงื่อนไขการแคชข้อมูล เป็นต้น 📨


🔍 ตัวอย่างของ Response Headers

เมื่อไคลเอนต์ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะตอบกลับมาพร้อมกับเฮดเดอร์ที่อาจมีลักษณะดังนี้:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 3421
Cache-Control: max-age=3600, must-revalidate
Server: Apache/2.4.41 (Ubuntu)

📂 ประเภทของ Response Headers

Response Headers สามารถแบ่งออกเป็นหมวดหมู่หลัก ๆ ดังนี้:

1️⃣ ทั่วไป (General Headers) 🛠️

ใช้สำหรับให้ข้อมูลเกี่ยวกับการเชื่อมต่อหรือการทำงานโดยรวมของเซิร์ฟเวอร์

  • Server - ให้ข้อมูลเกี่ยวกับซอฟต์แวร์ของเซิร์ฟเวอร์
  • Date - วันที่และเวลาที่เซิร์ฟเวอร์ตอบกลับ
  • Connection - กำหนดว่าเซิร์ฟเวอร์ควรปิดการเชื่อมต่อหลังจากการตอบกลับหรือไม่

📌 ตัวอย่าง:

Server: Nginx/1.18.0
Date: Tue, 20 Feb 2025 14:22:00 GMT
Connection: keep-alive

2️⃣ ข้อมูลเกี่ยวกับเนื้อหา (Entity Headers) 📦

ใช้สำหรับให้ข้อมูลเกี่ยวกับเนื้อหาของการตอบกลับ

  • Content-Type - ระบุประเภทของเนื้อหา เช่น text/html, application/json
  • Content-Length - ระบุขนาดของเนื้อหาเป็นไบต์
  • Content-Encoding - ระบุการบีบอัดที่ใช้ (gzip, br, deflate)
  • Content-Language - ระบุภาษาของเนื้อหา

📌 ตัวอย่าง:

Content-Type: application/json
Content-Length: 2048
Content-Encoding: gzip
Content-Language: en-US

3️⃣ การควบคุมแคช (Caching Headers) 🕰️

ใช้กำหนดนโยบายแคชของเบราว์เซอร์และพร็อกซีเซิร์ฟเวอร์

  • Cache-Control - ควบคุมพฤติกรรมการแคช (no-cache, max-age, must-revalidate)
  • Expires - ระบุเวลาหมดอายุของแคช
  • ETag - ระบุค่าที่ใช้เปรียบเทียบเวอร์ชันของทรัพยากร
  • Last-Modified - วันที่มีการเปลี่ยนแปลงครั้งล่าสุดของทรัพยากร

📌 ตัวอย่าง:

Cache-Control: max-age=3600, must-revalidate
Expires: Wed, 21 Oct 2025 07:28:00 GMT
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Last-Modified: Tue, 20 Feb 2025 12:00:00 GMT

4️⃣ การเปลี่ยนเส้นทาง (Redirect Headers) 🔄

ใช้สำหรับแจ้งให้ไคลเอนต์เปลี่ยนเส้นทางไปยัง URL ใหม่

  • Location - ระบุที่อยู่ใหม่ของทรัพยากร
  • Refresh - สั่งให้เบราว์เซอร์โหลดหน้าซ้ำหรือเปลี่ยนเส้นทาง

📌 ตัวอย่าง:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page

5️⃣ การรักษาความปลอดภัย (Security Headers) 🔐

ช่วยเพิ่มความปลอดภัยของเว็บไซต์และป้องกันการโจมตี

  • Strict-Transport-Security (HSTS) - บังคับให้ใช้ HTTPS
  • X-Frame-Options - ป้องกันการแสดงเนื้อหาใน <iframe>
  • X-Content-Type-Options - ป้องกัน MIME sniffing
  • Content-Security-Policy (CSP) - กำหนดนโยบายความปลอดภัยของเนื้อหา

📌 ตัวอย่าง:

Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'

📝 สรุป

Response Headers เป็นส่วนสำคัญของ HTTP ที่ช่วยควบคุมการตอบกลับจากเซิร์ฟเวอร์ไปยังไคลเอนต์ 🎯

General Headers - ข้อมูลเกี่ยวกับเซิร์ฟเวอร์ ✅ Entity Headers - ข้อมูลเกี่ยวกับเนื้อหา ✅ Caching Headers - ควบคุมแคช ✅ Redirect Headers - การเปลี่ยนเส้นทาง ✅ Security Headers - การรักษาความปลอดภัย

การเข้าใจ Response Headers ช่วยให้เราสามารถพัฒนาเว็บแอปที่ปลอดภัยและมีประสิทธิภาพมากขึ้น 🚀