ค้นหาส่วนหัว HTTP
ค้นหาส่วนหัว HTTP เป็นเครื่องมือฟรีสำหรับดึงส่วนหัวการตอบกลับ HTTP ทั้งหมดที่ URL ส่งกลับมาเมื่อได้รับคำขอ GET ทั่วไป
ส่วนหัวการตอบกลับ HTTP คืออะไร?
ส่วนหัวการตอบกลับ HTTP คือข้อมูลเมตาที่เว็บเซิร์ฟเวอร์ส่งมาก่อนเนื้อหาการตอบกลับ เช่น หน้า HTML รูปภาพ หรือเอกสาร JSON ข้อมูลเหล่านี้บอกไคลเอนต์ว่าควรตีความ แคช เปลี่ยนเส้นทาง หรือรักษาความปลอดภัยให้การตอบกลับอย่างไร
โดยปกติ การตอบกลับ HTTP/1.x จะเริ่มด้วยบรรทัดสถานะ HTTP แล้วตามด้วยส่วนหัว ส่วน HTTP/2 และ HTTP/3 จะระบุสถานะที่เทียบเท่ากันไว้ในส่วนหัวเทียม :status ในทางเทคนิค บรรทัดสถานะของ HTTP/1.x แยกจากส่วนหัว แต่มักแสดงไว้ด้วยกันเพราะช่วยบอกว่าคำขอสำเร็จหรือไม่ สถานะ 200 หมายถึงส่งทรัพยากรกลับมาแล้ว ส่วน 301 หรือ 302 หมายถึงการเปลี่ยนเส้นทาง 404 หมายถึงไม่พบทรัพยากร และ 500 หมายถึงเกิดข้อผิดพลาดฝั่งเซิร์ฟเวอร์
ส่วนหัวอาจมาจากเซิร์ฟเวอร์ต้นทาง พร็อกซีย้อนกลับ หรือเครือข่ายนำส่งเนื้อหาอย่าง Cloudflare ระบบเหล่านี้อาจเพิ่มหรือลบส่วนหัวระหว่างส่งต่อการตอบกลับ ดังนั้นผลลัพธ์จึงอาจสะท้อนข้อมูลมากกว่าตัวแอปพลิเคชันที่สร้างหน้าเว็บ
ใช้เครื่องมือตรวจสอบส่วนหัว HTTP อย่างไร?
ป้อน URL แบบเต็มที่ต้องการตรวจสอบ รวมถึงสกีมา เช่น https://www.example.com/account เครื่องมือจะส่งคำขอ GET ทั่วไปจากเซิร์ฟเวอร์ของตน แล้วแสดงส่วนหัว HTTP ที่ได้รับจาก URL นั้น
หากต้องการเปรียบเทียบส่วนหัวการตอบกลับอย่างแม่นยำ ให้ใช้ URL แต่ละรูปแบบที่ต้องการตรวจสอบตามจริง ส่วนหัวของ http://example.com, https://example.com และ https://www.example.com อาจต่างกัน เพราะแต่ละที่อยู่อาจมีการเปลี่ยนเส้นทาง กฎแคช และการกำหนดค่าเซิร์ฟเวอร์เป็นของตัวเอง
รูปแบบการเขียน URL ก็มีผลต่อคำขอเช่นกัน:
- เว้นวรรคไม่ใช่อักขระดิบที่ใช้ได้ใน URL โดยทั่วไปจึงต้องเข้ารหัสแบบเปอร์เซ็นต์ ซึ่งในพาธมักเขียนเป็น %20
- ? ใช้เริ่มส่วนคิวรี ส่วน & และ = มักใช้ในการเข้ารหัสคิวรีแบบฟอร์ม แต่ไม่ได้ทำหน้าที่นี้ในสตริงคิวรีทุกแบบ
- ชื่อโดเมนที่มีอักขระกำกับเสียงหรืออักขระนอกภาษาละตินจะได้รับการประมวลผลด้วย IDNA และแสดงเป็น ASCII A-label ซึ่งมักขึ้นต้นด้วย xn-- ส่วนอักขระในพาธโดยทั่วไปจะถูกเข้ารหัสเป็นไบต์ UTF-8 แล้วจึงเข้ารหัสแบบเปอร์เซ็นต์
- ส่วนระบุภายในหน้าที่ขึ้นต้นด้วย # จะได้รับการจัดการโดยเบราว์เซอร์ และไม่ถูกส่งไปกับคำขอ HTTP
- URL ไม่มีความยาวสูงสุดที่ใช้ร่วมกันได้ทุกระบบ URL ที่ยาวมากอาจถูกเซิร์ฟเวอร์ พร็อกซี หรือแอปพลิเคชันปฏิเสธ
อ่านผลส่วนหัว HTTP อย่างไร?
ตรวจสอบส่วนหัวที่เกี่ยวข้องกับปัญหาที่กำลังวิเคราะห์ ชื่อส่วนหัวไม่แยกตัวพิมพ์ใหญ่และเล็ก แต่ไวยากรณ์ภายในค่าของส่วนหัวอาจแยกตัวพิมพ์
| ฟิลด์ในผลลัพธ์ | ข้อมูลที่บอก |
|---|---|
| Location | ปลายทางของการเปลี่ยนเส้นทาง โดยปกติจะแสดงพร้อมสถานะ 3xx |
| Content-Type | ประเภทสื่อที่ส่งกลับมา เช่น text/html, application/json หรือ image/png |
| Content-Length | ขนาดเนื้อหาการตอบกลับที่ประกาศไว้ หน่วยเป็นไบต์ เมื่อเซิร์ฟเวอร์ระบุค่านี้ การตอบกลับแบบแบ่งเป็นส่วนหรือสร้างขึ้นแบบไดนามิกอาจไม่มีส่วนหัวนี้ |
| Cache-Control and Expires | คำสั่งเกี่ยวกับการแคช และเวลาหมดอายุของการตอบกลับหากมีการระบุไว้ |
| Age | อายุที่คำนวณได้ของการตอบกลับในแคช นับตั้งแต่ถูกสร้างหรือตรวจสอบความถูกต้องครั้งล่าสุด โดยอาจรวมเวลาที่อยู่ในแคชต้นทาง ค่านี้แสดงเป็นวินาที |
| ETag and Last-Modified | ตัวตรวจสอบที่ไคลเอนต์ใช้เช็กได้ว่าเนื้อหาในแคชมีการเปลี่ยนแปลงหรือไม่ |
| Set-Cookie | คำขอให้จัดเก็บคุกกี้ รวมถึงแอตทริบิวต์อย่าง Secure, HttpOnly และ SameSite |
| Content-Security-Policy | กฎของเบราว์เซอร์ที่จำกัดว่าสคริปต์ สไตล์ เฟรม และทรัพยากรอื่นใดที่หน้าเว็บโหลดได้ |
| Strict-Transport-Security | คำสั่งให้เบราว์เซอร์ที่รองรับใช้ HTTPS เป็นระยะเวลาที่กำหนด |
ส่วนหัวอื่นอาจใช้เฉพาะกับบางแอปพลิเคชัน ตัวอย่างเช่น Access-Control-Allow-Origin ใช้ควบคุมว่าต้นทางใดอ่านการตอบกลับผ่านคำขอข้ามต้นทางของเบราว์เซอร์ได้ ส่วนหัว Server อาจระบุชื่อซอฟต์แวร์หรือพร็อกซี แต่ใช้ยืนยันแพลตฟอร์มเบื้องหลังไม่ได้อย่างน่าเชื่อถือ เพราะผู้ดูแลระบบสามารถแก้ไขหรือลบค่านี้ได้
ตัวอย่างการแก้ปัญหาที่พบบ่อย
ปัญหาการเปลี่ยนเส้นทางเป็นเหตุผลหนึ่งที่พบบ่อยในการตรวจสอบส่วนหัว สมมติว่า https://example.com/old-page ส่งสถานะ 301 พร้อม Location: https://example.com/new-page หมายความว่าเซิร์ฟเวอร์กำลังสั่งให้ไคลเอนต์เรียกที่อยู่ใหม่ การตรวจสอบปลายทางแต่ละแห่งต่อเนื่องกันช่วยให้พบวงวนการเปลี่ยนเส้นทาง หรือการสลับระหว่าง HTTP กับ HTTPS ที่ไม่คาดคิดได้
หากหน้าเว็บหลัง Cloudflare หรือ CDN อื่นแสดงเนื้อหาเก่า ให้ตรวจสอบ Cache-Control, Age, ETag และส่วนหัวแคชเฉพาะของผู้ให้บริการ ค่าสูงใน Age หมายถึงอายุที่คำนวณได้ของการตอบกลับในแคช ซึ่งอาจรวมเวลาที่อยู่ในแคชต้นทาง ไม่ได้หมายถึงระยะเวลาที่ตัวกลางรายใดรายหนึ่งเก็บการตอบกลับนั้นไว้ และไม่ได้ยืนยันว่าแคชในทุกภูมิภาคมีเนื้อหาเวอร์ชันเดียวกัน
เมื่อ API ทำงานในสคริปต์ฝั่งเซิร์ฟเวอร์แต่ใช้ในเบราว์เซอร์ไม่ได้ ให้ตรวจสอบ Content-Type และส่วนหัวการตอบกลับ CORS รวมถึง Access-Control-Allow-Origin ปลายทาง JSON ที่ส่ง text/html กลับมาอาจกำลังแสดงหน้าข้อผิดพลาดหรือหน้าเข้าสู่ระบบ หากไม่มีสิทธิ์ข้ามต้นทาง เบราว์เซอร์อาจบล็อกการเข้าถึงแม้เซิร์ฟเวอร์จะส่งสถานะ 200 ก็ตาม
ส่วนหัวยังช่วยตรวจสอบเว็บไซต์ที่ดูเหมือนเข้าใช้งานไม่ได้ การตอบกลับ 503 ชี้ไปที่ความขัดข้องชั่วคราวของเซิร์ฟเวอร์หรือระบบต้นทาง ส่วน 404 หมายถึงไม่พบพาธที่ร้องขอ อย่างไรก็ตาม ส่วนหัววิเคราะห์ความขัดข้องไม่ได้ทุกกรณี หากการแปลงชื่อ DNS การเชื่อมต่อ TCP หรือการเจรจา TLS ล้มเหลวก่อนเกิดการตอบกลับ HTTP ก็อาจไม่มีส่วนหัวการตอบกลับให้ตรวจสอบ ใช้ปิงเพื่อตรวจสอบการเชื่อมต่อแยกต่างหาก และใช้ตัวตรวจสอบ HTTP/2 เพื่อตรวจสอบการรองรับโปรโตคอลได้
ทำไมผลส่วนหัวที่ถูกต้องจึงยังดูเหมือนผิด?
ผลลัพธ์ที่ถูกต้องอาจไม่ตรงกับเบราว์เซอร์ เพราะแคช ระเบียน DNS และบริบทของคำขออาจนำคำขอทั้งสองไปยังการตอบกลับคนละแบบ เครื่องมือนี้ทำงานบนเซิร์ฟเวอร์ จึงอาจเชื่อมต่อกับโหนด CDN คนละแห่ง หรือรับการเปลี่ยนแปลงล่าสุดของระเบียน DNS เร็วหรือช้ากว่าเครือข่ายในพื้นที่ของคุณ
เบราว์เซอร์ยังส่งคุกกี้ ประเภทเนื้อหาที่ยอมรับ ภาษา และตัวตรวจสอบแคชของตัวเองไปด้วย ดังนั้นหน้า WordPress ที่เข้าสู่ระบบแล้วอาจส่งกฎแคชต่างจากคำขอแบบไม่ระบุตัวตนจากเซิร์ฟเวอร์ ระบบกำหนดเส้นทางตามภูมิศาสตร์และระบบจัดการบอตอาจปรับการตอบกลับตามเครือข่ายต้นทางหรือส่วนหัวคำขอได้เช่นกัน
หลังเปลี่ยน DNS ตัวแปลงชื่อที่มีแคชอาจยังใช้ระเบียนเดิมจนกว่าค่า time to live จะหมดอายุ เมื่อการรับส่งข้อมูลไปถึงเซิร์ฟเวอร์ใหม่แล้ว ออบเจ็กต์เก่าใน CDN หรือแคชของเบราว์เซอร์ก็อาจยังส่งเนื้อหาเดิมกลับมา ตรวจสอบโฮสต์ที่แปลงชื่อได้แยกต่างหาก ล้างแคชตามความเหมาะสม และเปรียบเทียบ URL แบบตรงตัว แทนที่จะคิดว่าโฮสต์เนมทุกชื่อใช้การกำหนดค่าเดียวกัน
คำถามที่พบบ่อย
เครื่องมือนี้แสดงส่วนหัวคำขอด้วยไหม?
ไม่ เครื่องมือนี้ดึงเฉพาะส่วนหัวการตอบกลับที่ URL ส่งกลับมาสำหรับคำขอ GET ทั่วไป ส่วนหัวคำขอคือข้อมูลเมตาที่ส่งไปยังเซิร์ฟเวอร์ หากต้องการตรวจสอบอย่างครบถ้วน ต้องใช้เครื่องมือนักพัฒนาของเบราว์เซอร์ บันทึกของเซิร์ฟเวอร์ หรือไคลเอนต์บรรทัดคำสั่งแยกต่างหาก
URL ที่ป้อนในเครื่องมือเป็นข้อมูลส่วนตัวไหม?
การค้นหาดำเนินการบนเซิร์ฟเวอร์ ข้อมูลที่ป้อนจะถูกส่งไปยังเซิร์ฟเวอร์นั้นผ่าน HTTPS และไม่มีการจัดเก็บไว้ หลีกเลี่ยงการป้อน URL ที่มีรหัสผ่าน โทเค็นการเข้าถึง หรือพารามิเตอร์คิวรีที่ละเอียดอ่อน เพราะเซิร์ฟเวอร์ปลายทางจะได้รับค่าเหล่านั้นด้วยเมื่อมีการส่งคำขอ
ส่วนหัว HTTP บอกสาเหตุของคำเตือนใบรับรองได้ไหม?
โดยทั่วไป ส่วนหัวเพียงอย่างเดียวบอกไม่ได้ การเชื่อมต่อ TLS เกิดขึ้นก่อนส่งการตอบกลับ HTTP ดังนั้นใบรับรองที่หมดอายุ ชื่อโฮสต์ไม่ตรงกัน หรือผู้ออกใบรับรองที่ไม่ได้รับความเชื่อถือ อาจทำให้ไม่มีส่วนหัวใดถูกส่งกลับมา หากเบราว์เซอร์แสดงคำเตือนก่อนหน้าเว็บโหลด ให้ตรวจสอบใบรับรองและสายโซ่ใบรับรองแยกต่างหาก
ทำไมจึงมีส่วนหัว Set-Cookie หลายรายการ?
การตอบกลับหนึ่งครั้งอาจกำหนดคุกกี้ได้มากกว่าหนึ่งรายการ และคุกกี้แต่ละรายการจะใช้ฟิลด์ Set-Cookie ของตัวเอง อย่านำมารวมกันเสมือนเป็นรายการที่คั่นด้วยจุลภาค เพราะวันที่หมดอายุของคุกกี้เองก็อาจมีจุลภาคได้ ควรตรวจสอบโดเมน พาธ และแอตทริบิวต์ด้านความปลอดภัยของคุกกี้แต่ละรายการแยกกัน
เปรียบเทียบผลลัพธ์กับ curl ได้ไหม?
ได้ คำสั่งอย่าง curl -D - https://example.com/ -o /dev/null จะแสดงส่วนหัวการตอบกลับและทิ้งเนื้อหาการตอบกลับ เวอร์ชันของ Curl ส่วนหัวคำขอ การตั้งค่าการเปลี่ยนเส้นทาง และตำแหน่งเครือข่ายอาจทำให้ได้ผลต่างกัน ดังนั้นควรทำให้เงื่อนไขเหล่านี้ตรงกันก่อนสรุปว่าความแตกต่างเกิดจากข้อผิดพลาดของเซิร์ฟเวอร์
เครื่องมือยอดนิยม
สร้างลายเซ็นแบบกำหนดเองของคุณได้อย่างง่ายดายและดาวน์โหลดได้อย่างสะดวก
ใช้เครื่องมือ ping ของเราเพื่อตรวจสอบสถานะและเวลาตอบสนองของเว็บไซต์ เซิร์ฟเวอร์ หรือพอร์ตใด ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพ
เครื่องมือค้นหา IP ของ Digily Link ให้ข้อมูลโดยละเอียดเกี่ยวกับที่อยู่ IP ใด ๆ ใช้บริการออนไลน์ฟรีนี้เพื่อดูข้อมูล IP อย่างครบถ้วน
สร้างลิงก์ WhatsApp ฟรีได้ทันทีด้วยเครื่องมือสร้างลิงก์ WhatsApp ของเรา เพิ่มข้อความที่กำหนดเองและเริ่มแชทได้ในคลิกเดียว โดยไม่ต้องเข้าสู่ระบบหรือเขียนโค้ด