ทำไมทางออก VPN กับภาษาของเบราว์เซอร์จึงไม่ตรงกัน
Accept-Language ขอภาษาของคำตอบ ส่วน VPN เปลี่ยนที่อยู่ต้นทาง เมื่อเว็บไซต์ดูเหมือนถูกแปลเป็นภาษาท้องถิ่น ปัจจัยสามอย่างเป็นตัวตัดสินว่าอะไรชนะ
เปิดเครื่องมือนักพัฒนา โหลดหน้าเว็บ แล้วอ่านส่วนหัวของคำขอ ก่อนจะสรุปอะไรเกี่ยวกับ VPN โดยปกติคุณจะพบบรรทัด Accept-Language ที่ขอชุดภาษาที่กำหนด และบรรทัดนั้นมาจากการตั้งค่าเบราว์เซอร์ ไม่ได้มาจากที่อยู่ทางออกของคุณ คนที่พูดภาษาฝรั่งเศสบนทางออกในโตเกียวยังคงส่งภาษาฝรั่งเศส และเว็บไซต์ที่ตอบเป็นภาษาฝรั่งเศสก็กำลังตอบส่วนหัวนั้น อุโมงค์ไม่ได้รั่วเพียงเพราะหน้าเว็บมาถึงในภาษาที่คุ้นเคย
อ่านส่วนหัวก่อนสิ่งอื่นใด
ในเบราว์เซอร์บนเดสก์ท็อป เปิดแผงเครือข่าย โหลดใหม่ คลิกคำขอเอกสาร แล้วดูใต้ส่วนหัวของคำขอ จากเทอร์มินัลคุณเห็นสิ่งเดียวกันได้โดยไม่ต้องใช้เบราว์เซอร์ และเขียนทับค่าเพื่อทดสอบพฤติกรรมของเว็บไซต์ได้
curl -sS -D /tmp/h1 -o /tmp/b1 https://example.com
curl -sS -D /tmp/h2 -o /tmp/b2 -H 'Accept-Language: fr,en;q=0.6' https://example.com
grep -o 'lang="[^"]*"' /tmp/b1 /tmp/b2
diff /tmp/b1 /tmp/b2 | head -40
ตอนนี้เนื้อหาอยู่บนดิสก์ การเปรียบเทียบจึงเกี่ยวกับหน้าเว็บ ไม่ใช่ส่วนหัวที่อาจไม่ถูกส่งเลย ดูแอตทริบิวต์ lang ของแท็ก html และข้อความที่มองเห็น เพราะ Content-Language เป็นทางเลือกและเซิร์ฟเวอร์หลายแห่งละเว้นมัน เว็บไซต์ที่สลับทั้งหน้าจากอังกฤษเป็นฝรั่งเศสบน URL เดียวกันจึงอาจดูไม่เปลี่ยนในการเปรียบเทียบเฉพาะส่วนหัว ถ้าภาษาของเอกสารตามส่วนหัวขณะที่ทางออกคงที่ แสดงว่าส่วนหัวเป็นปัจจัยตัดสิน และ VPN ไม่เกี่ยวข้องกับการสังเกตนั้น
สำหรับการทดสอบนี้ให้ใช้โปรไฟล์เบราว์เซอร์ที่สองแทนตัวสลับภาษาของเว็บไซต์เอง ตัวสลับมักเขียนคุกกี้ ซึ่งเป็นปัจจัยอีกอย่าง และสุดท้ายคุณจะวัดคุกกี้แทนส่วนหัว
ค่า q หมายถึงอะไร และไม่หมายถึงอะไร
RFC 9110 ข้อ 12.5.4 กำหนดให้ Accept-Language เป็นรายการภาษาธรรมชาติที่ต้องการสำหรับคำตอบ แต่ละรายการมีน้ำหนักได้ตั้งแต่ 0 ถึง 1 ช่วงที่ไม่มีน้ำหนักมีน้ำหนัก 1 และน้ำหนัก 0 หมายถึงภาษาที่ไม่ยอมรับ นี่คือลำดับความชอบเท่านั้น
ค่าไม่ใช่รายงานตำแหน่ง ไม่ใช่คะแนนความเชื่อมั่น และไม่ใช่ตัวตน เซิร์ฟเวอร์มีอิสระที่จะเพิกเฉย จะให้คำแปลเดียวที่มี หรือปล่อยให้การเปลี่ยนเส้นทางตามประเทศชนะ การเจรจาเนื้อหาเป็นการเลือกของเซิร์ฟเวอร์ และส่วนหัวเป็นปัจจัยสำหรับการเลือกนั้น ไม่ใช่คำสั่ง
นี่คือส่วนที่ผู้คนมองข้ามเมื่อถือว่าหน้าที่แปลแล้วเป็นการทดสอบตำแหน่ง ส่วนหัวระบุว่าบุคคลชอบอ่านภาษาใด และความชอบสามารถเดินทางไปที่ใดก็ได้
ปัจจัยสามอย่างตัดสินภาษาที่คุณได้รับจริง
แยกทีละอย่าง เพราะจากภายนอกคุณมองไม่เห็นว่าอะไรชนะ
- ส่วนหัว ทดสอบด้วยโปรไฟล์ที่สองซึ่งตั้งค่าเป็นรายการภาษาอื่น และดูว่าหน้าเว็บเปลี่ยนหรือไม่ในขณะที่สิ่งอื่นคงที่
- ตัวเลือกที่บันทึกไว้ ทดสอบในหน้าต่างส่วนตัวที่ไม่มีคุกกี้ หรือล้างที่เก็บข้อมูลของเว็บไซต์ การตั้งค่าบัญชีและรายการใน localStorage อาจตรึงภาษาไว้นานหลายเดือน
- URL หรือการเปลี่ยนเส้นทาง ทดสอบโดยขอเส้นทางภาษาที่ชัดเจน เช่น
/fr/และสังเกตโค้ดสถานะของการเปลี่ยนเส้นทางตามที่อยู่ต้นทาง
ทำการทดสอบทั้งสามตามลำดับนั้น แล้วบันทึกว่าอะไรทำให้ผลลัพธ์เปลี่ยน การโหลดหน้าเดียวที่เปลี่ยนภาษาหลังเปิด VPN เป็นหลักฐานอ่อน เพราะทั้งการเปลี่ยนเส้นทางและคุกกี้ที่แคชไว้สามารถสร้างความรู้สึกนั้นได้
VPN เปลี่ยนอะไร และไม่เปลี่ยนอะไร
อุโมงค์เปลี่ยนที่อยู่ต้นทางที่เซิร์ฟเวอร์เห็น และเปลี่ยนทุกสิ่งที่เซิร์ฟเวอร์อนุมานจากพิกัด IP ด้วย มันไม่เขียนทับการตั้งค่าภาษาของเบราว์เซอร์ ไม่ลบการตั้งค่าที่บันทึกไว้ และไม่เปลี่ยน URL ที่คุณพิมพ์ ปัจจัยเหล่านั้นยังอยู่ที่เดิมทุกประการ หน้าเว็บจึงอาจคงภาษาเดิมไว้ได้หลังจากทางออกย้าย
พิกัดเพิ่มเสียงรบกวนของตัวเอง ฐานข้อมูลที่อยู่ขัดแย้งกันเอง และทางออกที่ลงทะเบียนในประเทศหนึ่งอาจถูกแมปไปยังอีกประเทศหนึ่ง ซึ่งทำให้การเปลี่ยนเส้นทางตามประเทศดูผิดด้วยเหตุผลที่ไม่เกี่ยวกับเบราว์เซอร์ของคุณ
การตรวจสอบอย่างรวดเร็วแยกออกจากกันได้ ขอหน้าเว็บใหม่ บันทึกที่อยู่ที่คุณนำเสนอ แล้วเปรียบเทียบภาษาของคำตอบกับรายการส่วนหัวของคุณ ถ้าภาษาตรงกับรายการของคุณแทนที่จะเป็นประเทศทางออก แสดงว่าส่วนหัวเป็นปัจจัยตัดสิน และไม่มีอะไรต้องแก้ในอุโมงค์
หน้าที่แปลแล้วพิสูจน์อะไร และไม่พิสูจน์อะไร
มีประเด็นความเป็นส่วนตัวจริงอยู่ที่นี่ และมันเล็กกว่าที่ผู้คนมักยกขึ้นมา รายการการตั้งค่าภาษาที่สมบูรณ์เป็นปัจจัยสำหรับลายนิ้วมือ และอาจเปิดเผยบางอย่างเกี่ยวกับว่าคุณเป็นใครหรืออ่านอะไร นั่นคือการเปิดเผยความชอบจริง และไม่เหมือนกับการพิสูจน์ว่าทราฟฟิกหลุดออกจากอุโมงค์
หน้าที่แปลแล้วไม่ใช่ตัวชี้วัดการรั่วไหล ถ้าคุณต้องการทดสอบการรั่วไหลจริง ให้ตรวจสอบที่อยู่ทางออกที่เว็บไซต์เห็น เส้นทางรีโซลเวอร์ที่ใช้ค้นหาชื่อ และผู้สมัครที่สแต็ก WebRTC เปิดเผย การทดสอบเหล่านั้นตอบคำถามที่ภาษาของหน้าเว็บตอบไม่ได้
ครั้งหน้าที่เว็บไซต์ดูเหมือนรู้ประเทศของคุณ ให้เปิดส่วนหัวของคำขอก่อน ถ้าภาษาของคำตอบตรงกับรายการของเบราว์เซอร์ แสดงว่าไม่มีอะไรรั่วไหล และชั้นที่คุณควรดูคือชั้นที่อยู่ตรงหน้าคุณ