ช่วงทดลองใช้จากต้นทางของการลด User Agent

การลด User Agent เป็นการดำเนินการเพื่อลดแพลตฟอร์มลายนิ้วมือแบบพาสซีฟโดยลดข้อมูลในสตริง User-Agent (UA) เหลือเพียงแบรนด์และเบราว์เซอร์เวอร์ชันที่สำคัญ ความแตกต่างระหว่างเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ และแพลตฟอร์มที่ใช้งาน ระบบจะแชร์สตริง UA ในคําขอ HTTP ทั้งหมดและแสดงใน JavaScript แก่ทรัพยากรทั้งหมดที่เบราว์เซอร์โหลด ซึ่งประกอบด้วยข้อมูลสำคัญเกี่ยวกับเบราว์เซอร์ แพลตฟอร์มที่ใช้ และความสามารถของเบราว์เซอร์ คำแนะนำไคลเอ็นต์ User-Agent (UA-CH) สามารถให้ข้อมูลเดียวกันกับสตริง UA แบบเต็ม ในขณะที่อนุญาตให้เว็บไซต์ขอข้อมูล UA ที่ต้องการเท่านั้น

ตั้งแต่ Chrome 95 เบต้าเป็นต้นไป เราจะเปิดการทดลองใช้เวอร์ชันต้นทางสำหรับการลด User Agent เพื่อให้เว็บไซต์เลือกรับสตริง UA ที่ลดลงได้ตั้งแต่ตอนนี้ ซึ่งจะช่วยให้เว็บไซต์ค้นพบและแก้ไขปัญหาก่อนที่ UA ที่ลดลงจะกลายเป็นลักษณะการทำงานเริ่มต้นใน Chrome (เราวางแผนที่จะเริ่มการลดในไตรมาสที่ 2 ของปี 2022) หากต้องการทดสอบช่วงทดลองใช้จากต้นทางในผู้ใช้ Chrome 95 รุ่นเบต้าก่อนที่จะเปิดตัวแก่ผู้ใช้เวอร์ชันเสถียร โปรดเลือกใช้และทดสอบก่อนวันที่เปิดตัว Chrome 95 (กำหนดการคือวันที่ 19 ตุลาคม 2021)

ภาพรวมของช่วงทดลองใช้ต้นทางและสิ่งที่จะเกิดขึ้นมีดังนี้ และเช่นเคย เรายินดีรับฟังความคิดเห็นหรือปัญหาใดๆ ตลอดช่วงทดลองใช้นี้ในที่เก็บ GitHub ของการลด UA

User-Agent คืออะไร

ระบบจะแชร์สตริง User-Agent (UA) ในคําขอ HTTP ทุกรายการ และแสดงใน JavaScript แก่ทรัพยากรทั้งหมดที่เบราว์เซอร์โหลด เนื่องจากมีข้อมูลสำคัญเกี่ยวกับเบราว์เซอร์และแพลตฟอร์มที่ใช้

เหตุใดจึงมีการลด User Agent

การลด User Agent เป็นแนวทางในการลดแพลตฟอร์มการพิมพ์ลายนิ้วมือแบบพาสซีฟในเบราว์เซอร์ Chrome ซึ่งได้ประกาศไปเมื่อเดือนมกราคม 2020 การลดข้อมูลในสตริง UA เหลือเพียงแบรนด์และเบราว์เซอร์เวอร์ชันที่สำคัญ การแยกความแตกต่างระหว่างเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ และแพลตฟอร์มที่ใช้ทําให้ระบุผู้ใช้แต่ละรายได้ยากขึ้น

การเปลี่ยนแปลงนี้ส่งผลต่อนักพัฒนาเว็บอย่างไร

เว็บไซต์ควรเตรียมพร้อมรับสตริง UA ที่ลดลงและพิจารณาเข้าร่วมการทดลองใช้ต้นทาง (ดูรายละเอียดด้านล่าง) ค่า User Agent ที่ลดลงจะปรากฏใน

  • ส่วนหัวคำขอ HTTP ของ User-Agent
  • navigator.userAgent Getter ของ JavaScript
  • navigator.platform Getter ของ JavaScript
  • navigator.appVersion Getter ของ JavaScript

หากต้องการรับข้อมูลไคลเอ็นต์มากกว่าที่ User Agent ที่ลดลงแชร์ เว็บไซต์จะต้องย้ายข้อมูลไปยัง API คำแนะนำสำหรับไคลเอ็นต์ของ User Agent ใหม่ โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับกลยุทธ์การย้ายข้อมูลได้ที่ย้ายข้อมูลไปยังคำแนะนำสำหรับไคลเอ็นต์ของ User Agent

แผนการลด User Agent จะไม่รวม iOS และ WebView ดังนั้นแพลตฟอร์มเหล่านั้นจะยังคงได้รับสตริง User Agent แบบเต็ม สาเหตุหลักคือแพลตฟอร์มเหล่านี้ยังไม่ได้ใช้คำแนะนำสำหรับไคลเอ็นต์ของ User Agent

ช่วงทดลองใช้ต้นทางนี้ทำงานอย่างไร

ช่วงทดลองใช้จากต้นทางนี้แตกต่างจากช่วงทดลองใช้จากต้นทางมาตรฐานเล็กน้อย การทดสอบต้นทางแบบมาตรฐานจะควบคุมได้เฉพาะลักษณะการทํางานในการตอบกลับ (เช่น ควบคุมการเข้าถึง API ใน JavaScript ของคำตอบ) ในการทดลองนี้ เป้าหมายของเราไม่เพียงแต่จะแก้ไขสตริง UA ที่ระบุไว้ใน Javascript API เท่านั้น แต่ยังแก้ไขส่วนหัว User-Agent ที่ส่งในคําขอ HTTP ด้วย

ในการดำเนินการนี้ เราจะกำหนดคำแนะนำชั่วคราวสำหรับไคลเอ็นต์ชื่อ Sec-CH-UA-Reduced ซึ่งการปรากฏในคำขอจะบ่งบอกว่าค่าส่วนหัว User-Agent มีสตริง UA ที่ลดลง ระบบจะส่งคำแนะนำไคลเอ็นต์ Sec-CH-UA-Reduced (พร้อมกับสตริง UA แบบย่อ) เฉพาะในกรณีที่โทเค็นช่วงทดลองใช้ของต้นทางถูกต้อง และคำแนะนำไคลเอ็นต์ Sec-CH-UA-Reduced จะไม่ทำงานเมื่อช่วงทดลองใช้ของต้นทางหมดอายุ โปรดทราบว่าคําขอการนําทางครั้งแรกจะยังคงได้รับสตริง User Agent ที่ไม่ผ่านการลด เว้นแต่คุณจะตั้งค่า Critical-CH header

คำขอทรัพยากรย่อยไปยังต้นทางเดียวกันจะส่งสตริง User-Agent เดียวกันกับคำขอระดับบนสุดที่ส่งโดยอัตโนมัติ คำขอทรัพยากรย่อยไปยังต้นทางของบุคคลที่สามจะส่งสตริง User Agent เดียวกันกับคำขอระดับบนสุด รวมถึงสตริง UA แบบย่อหากโทเค็นช่วงทดลองใช้ของต้นทางถูกต้อง ในกรณีที่นโยบายสิทธิ์อนุญาต

ฉันจะเข้าร่วมการทดลองใช้การลด User Agent จากต้นทางได้อย่างไร

  1. หากต้องการลงทะเบียนช่วงทดลองใช้จากต้นทางและรับโทเค็นสำหรับโดเมน ให้ไปที่หน้าการทดลองใช้การลด User Agent

  2. อัปเดตส่วนหัวการตอบกลับ HTTP

    1. เพิ่ม Origin-Trial: <ORIGIN TRIAL TOKEN> ลงในส่วนหัวของคำตอบ HTTP โดยที่ <ORIGIN TRIAL TOKEN> มีโทเค็นที่คุณได้รับเมื่อลงทะเบียนทดลองใช้ต้นทาง
    2. เพิ่ม Accept-CH: Sec-CH-UA-Reduced ลงในส่วนหัวการตอบกลับ HTTP
    3. การตั้งค่า Accept-CH จะทําให้ระบบส่งสตริง User Agent ที่ลดขนาดแล้วในคําขอต่อๆ ไปไปยังต้นทางเท่านั้น หากต้องการส่งคําขอไปยังต้นทางอีกครั้งโดยใช้สตริง User Agent ที่ลดขนาดแล้ว ให้เพิ่ม Critical-CH: Sec-CH-UA-Reduced ลงในส่วนหัวการตอบกลับ HTTP นอกเหนือจากส่วนหัว Accept-CH และ Origin-Trial
    4. หมายเหตุ: หากส่วนหัวการตอบกลับมีโทเค็น Origin-Trial และ Accept-CH: Sec-CH-UA-Reduced ที่ถูกต้อง คำขอทรัพยากรย่อยทั้งหมด (เช่น สําหรับรูปภาพหรือสไตล์ชีต) และการนําทางย่อย (เช่น iframe) จะส่งสตริง UA แบบย่อ แม้ว่าต้นทางของคําขอเหล่านั้นจะไม่ได้ลงทะเบียนในเวอร์ชันทดลองของต้นทางก็ตาม
  3. โหลดเว็บไซต์ใน Chrome M95 (หรือใหม่กว่า) และเริ่มรับสตริง UA ที่ลดลง

  4. ส่งปัญหาหรือความคิดเห็นไปยังที่เก็บข้อมูล GitHub ของการลด UA

  5. ดูการสาธิตการทดลองใช้ต้นทาง (พร้อมซอร์สโค้ด) ได้ที่ https://uar-ot.glitch.me/

วิธีเข้าร่วมช่วงทดลองใช้จากต้นทางในฐานะผู้ฝังของบุคคลที่สาม

ตั้งแต่ Chrome 96 เป็นต้นไป ชิ้นงานของบุคคลที่สาม (เช่น iframe ภายในเว็บไซต์อื่น) จะเข้าร่วมการทดลองใช้แหล่งที่มาได้โดยไม่ต้องลงทะเบียนเว็บไซต์ระดับบนสุด

วิธีลงทะเบียนเพื่อฝังเนื้อหาของบุคคลที่สาม

  1. ไปที่หัวข้อช่วงทดลองใช้การลด User Agent แล้วคลิกลงทะเบียน
  2. เมื่อสร้างโทเค็น อย่าลืมเลือกช่องทําเครื่องหมาย Third-party matching
  3. หากต้องการรับส่วนหัว User-Agent ที่ลดลงจากชิ้นงานของบุคคลที่สาม ให้อัปเดตส่วนหัวการตอบกลับ HTTP
  4. หากต้องการรับสตริง User Agent ที่ลดลงใน Javascript API คุณต้องแทรกโทเค็นช่วงทดลองใช้โดยใช้ JavaScript

ประเด็นสำคัญบางประการเกี่ยวกับการเรียกใช้ช่วงทดลองใช้ต้นทางในการฝังของบุคคลที่สามมีดังนี้

  • Critical-CH ไม่สามารถระบุสําหรับการฝังของบุคคลที่สาม ดังนั้นการนําทางครั้งแรกจะไม่ส่งสตริง UA แบบย่อ แม้ว่าคําขอทรัพยากรย่อยของการฝังของบุคคลที่สามจะส่งสตริง UA แบบย่อ
  • หากการทดสอบต้นทางได้รับการตรวจสอบสําหรับต้นทางของชิ้นงานของบุคคลที่สาม คำขอต่อจากนี้ไปยังต้นทางเดียวกันในการนําทางระดับบนสุดจะส่งสตริง UA ที่ลดลง ด้วยเหตุนี้ เราจึงขอแนะนำให้เพิ่มการเข้าร่วมการทดลองใช้จากต้นทางสำหรับคำขอระดับบนสุดและคำขอฝังร่วมกัน
  • หาก User Agent ปิดใช้คุกกี้ของบุคคลที่สาม การทดสอบต้นทางจะไม่ทํางานกับส่วนหัว User-Agent ในคําขอฝังของบุคคลที่สาม แม้ว่า Javascript API จะยังคงได้รับสตริง UA ที่ลดลง

ฉันจะตรวจสอบได้อย่างไรว่าช่วงทดลองใช้ต้นทางทํางานอยู่

หากต้องการตรวจสอบว่าการทดลองใช้ต้นทางทํางาน ให้ตรวจสอบส่วนหัวคําขอและตรวจสอบสิ่งต่อไปนี้

  1. ส่วนหัว User-Agent มีเวอร์ชันที่ลดลง โปรดดูรายการตัวอย่างสตริง UA ที่ลดลง วิธีหนึ่งในการดูคือสตริงเวอร์ชันย่อยของ Chrome จะมี 0.0.0
  2. ตั้งค่าส่วนหัว Sec-CH-UA-Reduced เป็น ?1

ฉันจะหยุดเข้าร่วมการทดลองใช้การลด User Agent จากต้นทางได้อย่างไร

คุณสามารถหยุดเข้าร่วมและรับสตริง User Agent แบบเต็มได้ทุกเมื่อในระหว่างช่วงทดลองใช้ วิธีหยุดเข้าร่วม

  1. ส่งส่วนหัว Accept-CH ในการตอบกลับ HTTP ที่ไม่รวม Sec-CH-UA-Reduced หมายเหตุ: Accept-CH ที่มีค่าว่างเป็นวิธีที่ถูกต้องในการดำเนินการนี้หากเว็บไซต์ไม่ได้ขอ Client Hint อื่นๆ
  2. นําส่วนหัว Origin-Trial สำหรับการทดลองใช้การลด User Agent ออกจากการตอบกลับ HTTP
  3. หากตั้งค่าไว้ ให้นำ Sec-CH-UA-Reduced ออกจากส่วนหัว Critical-CH ในการตอบกลับ HTTP

ช่วงทดลองใช้ต้นทางจะใช้เวลานานเท่าใด

การทดลองใช้การลด UA ของต้นทางจะทํางานอย่างน้อย 6 เดือน ซึ่งสอดคล้องกับเหตุการณ์สําคัญของ Chrome ประมาณ 6 รายการ ช่วงทดลองใช้จากต้นทางจะปรากฏใน M95 และสิ้นสุดภายใน M101 เมื่อถึงจุดนั้น Chrome จะประเมินความคิดเห็นจากช่วงทดลองใช้จากต้นทางก่อนที่จะส่งสตริง User Agent ที่ลดลงแบบเป็นระยะตามแผนการเปิดตัว หากเว็บไซต์ต้องการเวลานานกว่านั้น ก็สามารถเลือกใช้การทดลองใช้ต้นทางการเลิกใช้งานในภายหลัง ซึ่งจะช่วยให้เข้าถึงสตริง UA แบบเต็มได้นานอีกอย่างน้อย 6 เดือน เราจะเผยแพร่รายละเอียดเพิ่มเติมเกี่ยวกับการทดลองเลิกใช้งานเมื่อพร้อม

ฉันจะแชร์ความคิดเห็นเกี่ยวกับการทดลองใช้การลด User Agent ของต้นทางได้อย่างไร

ส่งปัญหาหรือความคิดเห็นไปยังที่เก็บข้อมูล GitHub ของการลด UA