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の機能ゲーティングを行います。テストチームはエンジン検出を使用して、個々のブラウザブランドではなくレンダリングエンジンごとにクロスブラウザテストマトリックスを整理します。

試してみる — User-Agent Parser & Analyzer

フルツールを開く