User-AgentからWebKitベースのブラウザを検出する
User-Agent文字列からWebKitベースのブラウザを識別します。真のWebKit(Safari)とWebKitとして報告するBlink(Chrome)を区別する方法を学びます。
Engine & Platform
詳細な説明
WebKitブラウザの検出
WebKitはAppleがSafari用に開発したオープンソースのレンダリングエンジンです。真のWebKitブラウザとWebKitとして報告するBlinkブラウザの識別は一般的な課題です。
WebKitの系譜
KHTML (Konqueror) → WebKit (Safari) → Blink (Chrome)
2013年にGoogleがWebKitをフォークしてBlinkを作成した際、Chromeは互換性のためにAppleWebKit/537.36トークンを維持しました。
WebKitとBlinkの区別
真のWebKit(Safari):
AppleWebKit/605.1.15 ... Version/17.2 Safari/605.1.15
- WebKitバージョン:605.x(開発中、バージョン変更あり)
Version/トークンを含むChrome/トークンなし
Blink(Chromeベース):
AppleWebKit/537.36 ... Chrome/120.0.0.0 Safari/537.36
- WebKitバージョン:537.36(固定、変更なし)
Chrome/トークンを含むVersion/トークンなし
iOS:すべてのブラウザがWebKit
iOSでは、AppleがすべてのブラウザにWebKitレンダリングエンジンの使用を要求しています。EU デジタル市場法によりAppleがiOSで代替エンジンを許可した場合、iOS上のエンジン検出のためのUA解析がより重要になります。
ユースケース
フロントエンド開発者がWebKitブラウザを検出して、Safari固有のCSSの回避策を適用し、WebKitとBlinkで動作が異なるAPIの機能ゲーティングを行います。テストチームはエンジン検出を使用して、個々のブラウザブランドではなくレンダリングエンジンごとにクロスブラウザテストマトリックスを整理します。