使用者代理程式字串有異動、Chrome 和 Firefox 為降低影響而採取的策略,以及您可以提供哪些協助。
Chrome 和 Firefox 就能在幾個月後推出 100 版但可能造成中斷 仰賴辨識瀏覽器版本來執行商業邏輯的網站。 本文將介紹事件的時間表、Chrome 和 Firefox 的 盡可能減輕影響,以及可以提供哪些協助
使用者代理程式字串
User-Agent (UA) 是瀏覽器透過 HTTP 標頭傳送的字串,讓伺服器可以
識別瀏覽器。您也可以透過 JavaScript 存取字串,
navigator.userAgent
。
這個路徑通常採用以下格式:
<browser_name>/<major_version>.<minor_version>
例如:發布當下的瀏覽器最新版本 這篇文章位於:
- Chrome:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
- Firefox:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
- Safari:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
主要版本 100:三位數版本號碼
主要版本 100 是 Chrome 和 Firefox 的重大里程碑。這個平台也包含 我們從 2 位數到 2014 年時 三位數版本號碼。網頁程式開發人員都會使用各種技術 從自訂程式碼到使用 User-Agent 剖析程式庫,來剖析這些字串 據此決定相應的處理邏輯 User-Agent 和其他任何版本回報機制不久後都會回報 這三位數的版本號碼
版本 100 時間表
100 版瀏覽器會首度在實驗版本 (Chrome) 中推出 Canary 版、Firefox 夜間版本)、Beta 版,以及穩定版 頻道。
為什麼三位數的版本號碼會有問題?
當瀏覽器在不到 12 年前首次推出 10 版時 我們發現許多問題 主要版本號碼來自 User-Agent 剖析程式庫 轉換成兩位數
如果沒有單一規格 各種瀏覽器都有不同的格式 ,以及網站專屬的使用者代理程式剖析。是 某些剖析程式庫可能會提供硬式編碼的假設或錯誤 並未考慮到三位數的主要版本號碼多個程式庫 改善了瀏覽器改用兩位數版本號碼時的剖析邏輯,因此 達到 3 位數的里程碑應該就會減少問題小麥 Taylor、 Chrome 團隊的工程師已進行問卷調查,調查常見的通用 Analytics 剖析 未發現任何問題的程式庫在 欄位發現了一些問題,我們正在處理。
瀏覽器採取哪些行動?
Firefox 和 Chrome 都正在執行實驗,而新版本的 為了偵測可能性, 網站故障因此發生了一些回報的問題。 其中某些功能已經過修正。 這些實驗將持續進行,直到 100 版推出為止。
另外還有備份緩解策略,以 100 版來說 發布至穩定版會造成網站損壞情形超出預期。
Chrome 因應措施
在 Chrome 中,備份方案是使用旗標將主要版本凍結為 99 然後回報子版本中的實際主要版本號碼 使用者代理程式字串 (程式碼已 landed)。
User-Agent 字串中回報的 Chrome 版本會採用以下模式:
<major_version>.<minor_version>.<build_number>.<patch_number>
。
如果採用備份方案,使用者代理程式字串看起來會像這樣 :
99.101.4988.0
Chrome 也正在執行實驗,確保系統回報 3 位數的值 不會因此損毀,因為 Chrome User-Agent 字串中的子版本回報長期值為 0 讓應用程式從可以最快做出回應的位置 回應使用者要求Chrome 團隊會決定是否採用備用選項 根據所回報問題的嚴重程度和嚴重性進行分類。
Firefox 緩解措施
在 Firefox 中,系統將根據中斷情形的重要性來制定策略。Firefox
有
網站介入措施。
Mozilla webcompat 團隊可以透過這個
以注意力機制為基礎如果您在 Firefox 網址列輸入 about:compat
,就能看到
正在修正中。如果主要版本 100 發生網站故障
但只要傳送 99 版即可修正此問題。
如果中斷情形很廣泛,就可能會凍結主要版本 號碼。可行的策略有很多種,每個策略 優缺點Mozilla 可以傳送實際版本號碼做為子版本 數字、完全凍結字串或傳送實際版本號碼 和其他參數
凡是讓使用者代理程式字串變得複雜的策略,都具有強大的 會如何影響整個大環境讓我們攜手合作,避免產生另一個奇怪的東西 行為
可以提供什麼協助?
在 Chrome 和 Firefox 夜間,您可以將瀏覽器設為回報 立即更新至 100 版,並回報遇到的所有問題。
設定讓 Chrome 回報主要版本為 100
- 前往
chrome://flags/#force-major-version-to-100
。 - 將選項設為
Enabled
。
設定 Firefox 夜間模式,將主要版本回報為 100
- 開啟 Firefox 夜間設定選單。
- 搜尋「Firefox 100」然後檢查 [Firefox 100 User-Agent] 字串」如果有需要 SQL 指令的分析工作負載 則 BigQuery 可能是最佳選擇
測試和檔案報表
- 如果您是網站維護人員,請使用 Chrome 測試網站 以及 Firefox 100查看使用者代理程式剖析程式碼和程式庫,並 請確保能夠處理三位數的版本號碼。我們 其中編譯了 目前破壞的模式。
- 如果您開發使用者代理程式剖析程式庫,請新增要剖析的測試 大於 100 個版本。初期測試顯示 不同的程式庫都能正確處理不過,網路的內容很久以前就存在 因此,如果您使用舊版的剖析程式庫 檢查問題,最後完成升級
- 在瀏覽網路時 請留意 第 100 版 前往 webcompat.com 提出檢舉。