השתתפות בתקופת הניסיון של המקור להפחתת שפות

התכונה'צמצום Accept-Language' נועדה לצמצם את הפלטפורמות ליצירת טביעות אצבע פסיביות על ידי צמצום העדפות השפה של המשתמש בכותרת Accept-Language ושליחת השפה המועדפת ביותר של המשתמש בלבד (רק אחת).

החל מגרסת הבטא של Chrome 109, נפתח את גרסת המקור לניסיון של צמצום Accept-Language, כדי לאפשר לאתרים להביע הסכמה לקבלת הכותרת Accept-Language המקוצרת. כך האתרים יוכלו לזהות ולתקן בעיות לפני שההתנהגות המוגבלת של Accept-Language תהפוך לברירת המחדל ב-Chrome בגרסה עתידית. כדי לבדוק את התכונה לפני שהיא תושק לאוכלוסייה יציבה, חשוב להביע הסכמה ולבדוק אותה לפני תאריך ההשקה של Chrome 109 (התאריך המתוכנן הוא 10 בינואר 2023).

בהמשך מפורטות דוגמאות לכותרת Accept-Language לפני ואחרי ההפחתה.

היחס הנוכחי
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
מוצע
Accept-Language: en-GB

בהמשך מופיעה סקירה כללית של תקופת הניסיון למקורות נתונים, וגם מה צפוי לכם. אתם יכולים לשלוח משוב על השינוי הזה או על בעיות שתתקלו בהן במהלך תקופת הניסיון במקור במאגר GitHub של Accept-Language Reduction.

מהו Accept-Language?

המחרוזת Accept-Language משותפת בכל בקשת HTTP וחשופה ב-JavaScript לכל המשאבים שהדפדפן טוען. נכון לעכשיו, הוא מכיל את כל השפות המועדפות על המשתמש.

למה ה-Accept-Language מצטמצם?

התכונה 'צמצום Accept-Language' היא ניסיון לצמצם את הפלטפורמות הפסיביות ליצירת טביעות אצבע ב-Chrome.

נכון לעכשיו, הכותרת Accept-Language משותפת כברירת מחדל בכל בקשת HTTP, וחשופה ב-JavaScript לכל המשאבים שנטענים על ידי הדפדפן. הוא מכיל את כל העדפות השפה של המשתמש. במקום שהדפדפן ישלח את הרשימה המלאה של השפות שהמשתמש הגדיר למקרה שהאתרים ירצו לספק תוכן בכמה שפות, אנחנו משיקים דרך חדשה לאתרים לציין תוכן בכמה שפות, והדפדפן יהיה אחראי לנהל את המשא ומתן לגבי השפה ולהציג את השפה המועדפת.

סיבה נוספת היא שאתרים רבים לא משתמשים בכלל בכותרות Accept-Language לצורך משא ומתן על שפה (לדוגמה, במחקר אחד צוין שרק 7.2% מתוך 10,000 האתרים המובילים משתמשים ב-Accept-Language). מצב פרטי ב-Chrome כבר צמצם את Accept-Language לאחד.

מה המשמעות מבחינת מפתחי אתרים?

באתרים שמסתמכים על Accept-Language כדי לנהל משא ומתן על שפה, צריך להתכונן לקבלת Accept-Language מופחתת ולשקול להשתתף בגרסת הטרום-השקה של המקור. ערכי Accept-Language המוקטנים יופיעו ב:

  • כותרת בקשת ה-HTTP Accept-Language.
  • פונקציית ה-getter של JavaScript‏ navigator.languages.

הדפדפן יישא באחריות לניהול המשא ומתן על השפה כדי לבחור את השפה המועדפת על המשתמש לשליחה לאתרים. כדי לעשות זאת, צריך להוסיף לאתר שני כותרות Variants (כותרת חדשה מציינת אתרים שתומכים בשפות) Accept-Language ו-Content-Language בכותרת התגובה (ראו דוגמה מפורטת בהמשך).

תוכניות Accept-Language עם ההנחה לא כוללות כרגע את iOS ו-WebView, והפלטפורמות האלה ימשיכו לקבל את הרשימה המלאה של Accept-Language של המשתמשים. התמיכה בפלטפורמות האלה מתוכננת למועד מאוחר יותר.

גרסת מקור לניסיון להפחתת מידע מהבקשה Accept-Language

כדי להפעיל גרסת טרום-השקה במקור, האתר המשתתף צריך לספק אסימון בתגובה שלו, שמורה לדפדפן להפעיל את גרסת הטרום-השקה שצוינה. עם זאת, המשמעות היא שבבקשה הראשונית של הדפדפן לאתר אין לו דרך לדעת אם האתר משתתף בתוכנית ניסוי למקורות. המשמעות היא שהבקשה הראשונית בסשן לא תשלח את Accept-Language header המופחת. בקשות למשאבי משנה בדף הזה, גם מאותו מקור וגם ממקורות שונים, יקבלו את הכותרת המקוצרת Accept-Language. גם ניווטים נוספים מאותו מקור יקבלו את הכותרת המקוצרת Accept-Language. ניווטים בין מקורות יחזרו לשליחת הכותרת המלאה, אבל בקשות בין מקורות בתוך הדף (כמו בקשות iframe של צד שלישי) עדיין ישלחו את הכותרת Accept-Language המקוצרת אם לבקשת המסגרת ברמה העליונה יש אסימון ניסיון תקף למקור.

זה דומה לניסוי ההפחתה של סוכן המשתמש במקור. למידע נוסף על ההטמעה הפנימית ב-Chromium, אפשר לקרוא את המאמר הטמעה של כותרת HTTP מסוג Reduce Accept-Language.

השתתפות בגרסת המקור לניסיון של צמצום Accept-Language

אפשר לקרוא הנחיות נוספות במאמר תחילת השימוש בגרסת המקור לניסיון של Chrome, אבל השלבים החיוניים מפורטים בהמשך.

שלב 1

כדי להירשם לתקופת הניסיון למקור ולקבל אסימון לדומיינים שלכם, תוכלו להיכנס לדף Trial for Accept-Language Reduction.

שלב 2

מעדכנים את כותרות התגובה של HTTP:

  1. מוסיפים את Origin-Trial: <ORIGIN TRIAL TOKEN> לכותרת התגובה של ה-HTTP, כאשר <ORIGIN TRIAL TOKEN> מכיל את האסימון שקיבלת כשנרשמת לגרסת המקור לניסיון.
  2. מוסיפים את Content-Language לכותרת התגובה של ה-HTTP כדי לציין את השפות המיועדות לקהל.
  3. מוסיפים את Variants לכותרת התגובה של ה-HTTP כדי לציין את השפות הנתמכות באתר.
  4. [אופציונלי] מוסיפים את Vary: Accept-Language לתגובת ה-HTTP כדי ליצור מפתח מטמון לניהול משא ומתן על תוכן.
  5. הגדרת הכותרות האלה תגרום רק לניהול משא ומתן על שפת הדפדפן (הפעלה מחדש פוטנציאלית של הבקשה הראשונית) למקור הנתון. כדי שהאתרים יציגים את ייצוג השפה הנכון למשתמשים, צריך גם לעדכן את האתרים ששולחים את התוכן על סמך הכותרת Accept-Language של המשתמש (ראו דוגמה בהמשך).

שלב 3

טוענים את האתר ב-Chrome M109 Beta (או גרסה מתקדמת יותר) ומתחילים לקבל את המחרוזת המקוצרת של Accept-Language.

אפשר לשלוח בעיות או משוב למאגר GitHub של Accept-Language Reduction.

הדגמה (דמו)

הדגמה של אתר בכמה שפות שהביע הסכמה לתוכנית הניסוי למקורות (יחד עם קוד המקור) זמינה בכתובת https://reduce-accept-language.glitch.me/.

הדגמה של הסכמה לשימוש בתכונה 'הצגת הודעה על הסכמה לשימוש בשפה' בתקופת הניסיון בדומיין המקור (יחד עם קוד המקור) זמינה בכתובת https://reduce-accept-language-ot.glitch.me/.

לדוגמה, example.com תומך ב-ja (יפנית) וב-en (אנגלית). בקשה יכולה להיות:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

האתר יודע שהמשתמש מעדיף תוכן באנגלית על סמך הערך של accept-language שלו. כותרות התגובה עשויות לכלול:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

אם למשתמש יש העדפה לתוכן בשפה היפנית, הבקשה תהיה:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

במקרה כזה, האתר מגיב עם כותרות לתוכן ביפנית:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

בצד השרת, יכול להיות שהאתר יחפש תמיכה בשפה ספציפית, אבל יחזור לשפת ברירת המחדל אם לא תזוהה תמיכה:

if(accept_language == 'ja') {
    res.response('ja_page')
}
else {
   res.response('en_page')
}

בדוגמה שלמעלה, example.com משיב en או ja על סמך הערך של Accept-Language, והערך שמוגדר כברירת מחדל הוא en אם לא נמצאה התאמה. במקרה כזה, האתר יכול גם לספק הפניות אוטומטיות לדפי השפה המתאימים, /en או /ja, על סמך הערך של Accept-Language. במסמך ההטמעה מפורטות דוגמאות להפניות אוטומטיות.

תמיכה בגרסת מקור לניסיון של צד שלישי

בשלב הזה אנחנו לא תומכים ברישום הדומיינים שלכם כצד שלישי בתקופת הניסיון. אם אתם מפעילים שירות שמוטמע כמשאב משנה במקורות שונים (כמו הצגת מודעות או ניתוח נתונים), תקבלו את הכותרת המקוצרת Accept-Language רק אם האתר ברמה העליונה משתתף בגרסת הניסיון של המקור.

אימות שהגרסה לניסיון באתר המקור פועלת

במדריך לפתרון בעיות בגרסת המקור של Chrome מופיעה רשימת משימות מלאה שתעזור לכם לוודא שהאסימון מוגדר בצורה נכונה.

אפשר להגדיר כמה שפות ואת סדר העדיפויות שלהן דרך chrome://settings/languages או 'הגדרות' → 'שפות'. מומלץ לבחור שפה שהאתר לא תומך בה ולהעביר אותה לראש הרשימה כדי להבטיח שהמשא ומתן החוזר הנוסף יופעל.

הכותרות של התגובה הראשונית שמכילות את אסימון תקופת הניסיון במקור אמורות להיראות כך:

צילום מסך של כותרת הבקשה עם Accept-Language המקוצר.

כותרות הבקשה הבאות שמכילות את Accept-Language המקוצר נראות כך:

הכותרות של התגובה הראשונית שמכילות את אסימון תקופת הניסיון במקור.

הפסקת ההשתתפות בתוכנית 'תקופת ניסיון במקור'

בכל שלב במהלך תקופת הניסיון, תוכלו להפסיק את ההשתתפות ולקבל את הרשימה המלאה של Accept-Language של המשתמשים. כדי להפסיק את ההשתתפות:

  1. מסירים את הכותרת Origin-Trial של תקופת הניסיון של צמצום Accept-Language מתשובת ה-HTTP.
  2. [אופציונלי] אם אתם לא רוצים לשלוח את הכותרת Variants, שהיא הכותרת שנוספת כדי להביע הסכמה לתקופת הניסיון במקור, תוכלו להסיר אותה מתשובת ה-HTTP. אפשר גם להשתמש ב-Variants עם ערך ריק כדי להשיג את זה.
  3. [אופציונלי] אם אתם לא רוצים לשלוח את הכותרת Content-Language, שהיא הכותרת שמתווספת לתגובת ה-HTTP כדי להביע הסכמה לניסיון המקור, תוכלו להסיר אותה.

משך תקופת הניסיון של גרסת המקור

תקופת הניסיון של גרסת המקור של צמצום Accept-Language תפעל למשך שישה חודשים לפחות, שתואמים לכ-6 אבני דרך של Chrome. גרסת המקור לניסיון תופיע בגרסה M109 ותסתיים בגרסה M114 (כלומר בגרסה האחרונה של Chrome שבה האפשרות הזו זמינה). בשלב הזה, Chrome יעריך את המשוב מהניסוי במקור לפני שהוא ימשיך לשלוח את המחרוזת המקוצרת של Accept-Language בשלבים: קודם יקצר את כותרת ה-HTTP של Accept-Language ואז יקצר את ממשק ה-JS. אם באתר שלכם נדרש זמן נוסף לבדיקה, תוכלו להצטרף לתוכנית הניסיון הבאה להוצאה משימוש של מקור, שתאפשר לכם לגשת למחרוזת המלאה של Accept-Language למשך שישה חודשים נוספים לפחות. נפרסם פרטים נוספים על תקופת הניסיון להוצאה משימוש כשהיא תהיה מוכנה.

מתן משוב

אפשר לשלוח בעיות או משוב למאגר GitHub של Accept-Language Reduction.