ช่วงทดลองใช้จากต้นทางของการลด 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) หากต้องการทดสอบเวอร์ชันทดลองของต้นทางในผู้ใช้ 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

ส่วนหัวของการตอบกลับครั้งแรกซึ่งมีโทเค็นช่วงทดลองใช้ของต้นทางควรมีลักษณะดังนี้

ส่วนหัวของการตอบกลับครั้งแรกที่มีโทเค็นช่วงทดลองใช้ของต้นทาง

ส่วนหัวคําขอต่อๆ ไปที่มีสตริง UA ที่ลดลงควรมีลักษณะดังนี้

ส่วนหัวคําขอที่ตามมาซึ่งมีสตริง UA ที่ลดลง

ฉันจะหยุดเข้าร่วมการทดลองใช้การลด 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