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

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

เหตุใด User-Agent จึงลดลง

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

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

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

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

หากต้องการรับข้อมูลไคลเอ็นต์เพิ่มเติมจากที่ User-Agent รุ่นลดลง เว็บไซต์จะต้องย้ายข้อมูลไปยัง API Client Hints ใหม่ ดูรายละเอียดเพิ่มเติมเกี่ยวกับกลยุทธ์การย้ายข้อมูลได้ที่คำแนะนำย้ายข้อมูลไปยังไคลเอ็นต์ 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 ที่มีค่าว่างคือวิธีที่ถูกต้องในการดำเนินการดังกล่าว หากเว็บไซต์ของคุณไม่ได้ขอคำใบ้อื่นๆ จากลูกค้า
  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