谷歌宣佈 Chrome 將逐步停止支持 User Agent

谷歌近日宣佈將放棄對 Chrome 瀏覽器中用戶代理字符串(User-Agent String)的支持。取而代之的是,Chrome 將提供一個名為“客戶端提示(Client Hints)”的新 API,從而使用戶可以更好地控制網站間的共享信息。

對用戶代理字符串的使用可以追溯到 90 年代早期的一個流行瀏覽器 Mosaic ,該字符串只是一個包含瀏覽器名稱及其版本的簡單字符串,看起來有點像 Mosaic/0.9,幾乎沒有什麼用處。

幾年後出現的 Netscape 瀏覽器也採用了用戶代理字符串,並添加了諸如操作系統、語言等附加細節。這些細節可以讓網站為用戶提供正確的內容,實際應用中,用戶代理字符串的主要用途變成了瀏覽器嗅探。

由於 Mosaic 和 Netscape 提供不同的功能支持,網站必須使用用戶代理字符串來確定瀏覽器類型,以避免使用不支持的功能(例如僅由 Netscape 支持的框架)。

多年來,瀏覽器嗅探在決定瀏覽器性能方面一直扮演著重要角色,這也導致了一個很不好的副作用:因為許多公司只支持一些主流的用戶代理字符串,很多小型瀏覽器廠商不得不模仿這些主流類型來顯示正確的網站。

隨著 JavaScript 越來越受歡迎,大多數開發者開始使用類似 Modernizer 這樣的 JS 庫來檢測瀏覽器的具體功能,因為這樣可以提供更準確的結果。

因此,用戶代理字符串最主要的用途仍然是在廣告行業,公司用它來識別用戶,許多隱私倡導者認為這種做法有問題,這主要是因為大多數用戶沒有多少選項來禁用或屏蔽這些細節。

針對這兩個問題,Chrome 團隊將從 Chrome81 開始逐步淘汰用戶代理字符串。

儘管完全刪除用戶代理字符串還存在爭議,畢竟還有很多網站依賴它們,但 Chrome 仍然決定將不再更新瀏覽器版本,而且只包含一個統一版本的操作系統數據。

2020 年 9 月中旬發佈的 Chrome85 預計將會完全移除用戶代理字符串。其它瀏覽器供應商,包括 Mozilla Firefox、Microsoft Edge 以及 Apple Safari,都表示支持這一舉措。但目前還不清楚他們何時會採取行動。

如果想了解更多關於 Chrome 提出的用戶代理替代方案的信息,可以參閱 Github 官方庫中題為”客戶端提示“的文章。同其它提案一樣,具體的實現方式在正式發佈之前可能會改變,建議開發人員關注庫中的信息,以及 Chrome 新版本的發佈聲明。


分享到:


相關文章: