ลองนึกภาพ: คุณตั้งค่าพร็อกซีเซิร์ฟเวอร์ตัวเดียวกัน แล้วเข้าใช้งานเว็บไซต์สองแห่งที่แตกต่างกัน เว็บแรกแจ้งอย่างมีความสุขว่า ไอพีจริงของคุณคือเลขนี้ คุณกำลังใช้พร็อกซีอยู่ ส่วนเว็บที่สองไม่เห็นอะไรน่าสงสัย และมองว่าคุณเป็นผู้เยี่ยมชมทั่วไป พร็อกซีตัวเดียวกัน คอนฟิกเดียวกัน แต่ผลลัพธ์กลับต่างกันโดยสิ้นเชิง ทำไมถึงเป็นแบบนั้น? คำตอบเกือบจะอยู่ในส่วนหัว HTTP เสมอ

ส่วนหัวคือข้อมูลบริการที่เบราว์เซอร์ พร็อกซี และเซิร์ฟเวอร์ใช้แลกเปลี่ยนกันในทุกคำขอ ส่วนใหญ่จะมองไม่เห็นสำหรับผู้ใช้ทั่วไป แต่มันคือสิ่งที่กำหนดว่าเซิร์ฟเวอร์ปลายทางรู้เกี่ยวกับคุณและรู้เส้นทางของโหนดทั้งหมดที่คำขอผ่านมาอย่างไร มีส่วนหัวสามตัวที่เป็นตัวเอกในเรื่องนี้: Via, X-Forwarded-For และ Forwarded มาตรฐานใหม่ที่อธิบายไว้ใน RFC 7239

ในคู่มือนี้ เราจะพาคุณไล่เรียงหัวข้อตั้งแต่พื้นฐานจนถึงรายละเอียดปลีกย่อย คุณจะได้รู้ว่าส่วนหัว Via มาจากไหน hop-by-hop กับ end-to-end ต่างกันอย่างไร ทำไมถึงไว้ใจ X-Forwarded-For แบบสุ่มสี่สุ่มห้าไม่ได้ และวิธีตั้งค่าความเชื่อถือให้ถูกต้องฝั่งเซิร์ฟเวอร์ เราจะถอดรหัสคำศัพท์ทางการตลาดอย่าง transparent (โปร่งใส), anonymous (ไม่เปิดเผยตัว) และ elite (ระดับสูงสุด) สำหรับพร็อกซี ตามเงื่อนไขของส่วนหัวจริง ๆ ไม่ใช่คำโฆษณา และที่สำคัญที่สุด คุณจะได้เครื่องมือที่พร้อมใช้ เพื่อตรวจสอบด้วยตัวเองว่าชุดส่วนหัวใดหลุดออกไปจริง ๆ

ขอขอบเขตไว้เลยว่า เราจะพูดถึงเฉพาะส่วนหัว HTTP เท่านั้น เราจะไม่พูดถึงฟิงเกอร์พรินต์ ลายเซ็น TLS และวิธีตรวจจับอัตโนมัติ เพราะมันเป็นหัวข้อใหญ่อีกเรื่องหนึ่ง ที่นี่เราสนใจแค่ส่วนหัว: อะไรเป็นตัวเพิ่มส่วนหัว มันเปิดเผยอะไร และจัดการมันยังไง