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

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

החל מ-Chrome 109 בטא, נפתח גרסת המקור לניסיון עבור צמצום השימוש בשפה, שמאפשרת לאתרים להביע הסכמה לקבלת הכותרת 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

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

מהי שיטת Accept-Language?

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

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

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

להשתתף בגרסת המקור לניסיון של Accept-Language Reduction

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

שלב 1

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

שלב 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 בטא (ואילך) ומתחילים לקבל מחרוזת Accept-Language.

אם יש בעיות או משוב, אפשר לשלוח בקשה להפחתת שפות ב-GitHub מאגר הנתונים.

הדגמה (דמו)

הדגמה של אתר רב-לשוני שהסכים לניסיון המקור (יחד עם קוד המקור) תוכלו לראות 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

האתר יודע שהמשתמש מעדיף תוכן באנגלית בהתאם לקבל שפה. כותרות התגובה עשויות לכלול:

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

מתן משוב

אם יש בעיות או משוב, אפשר לשלוח בקשה להפחתת שפות ב-GitHub מאגר הנתונים.