MiServe DevTools

あなたのステッカー

ツールをここにピン留めできます。このブラウザに保存されます。

ユーザーエージェント解析

ユーザーエージェント文字列をブラウザ、レンダリングエンジン、OS、デバイスの種類に分けて読み取り、今使っているブラウザが自身について報告する情報も確認できます。

ブラウザまたはクライアント
レンダリングエンジン
OS
デバイスの種類
CPU アーキテクチャ(文字列に含まれる場合)

このブラウザが自身について報告する情報

これらの値は上の文字列ではなく、今使っているブラウザから読み取ったものです。このページの外には送信されません。

使用中のブラウザのプロパティ
プロパティ値
Client Hints のブランド
Client Hints のプラットフォーム
言語
画面サイズ
デバイスピクセル比
タイムゾーン
Cookie
WebAssembly
Web Crypto

ブラウザ内で動作します。貼り付けた内容はアップロードされません。

このツールについて

ユーザーエージェント文字列とは

ほぼすべての HTTP リクエストには、クライアントが自分の名前を名乗る User-Agent ヘッダーが付いています。ブラウザは何十年にもわたり、競合ブラウザ向けに作られたサイトでも正しく表示されるよう、互いの名前をこの文字列に書き加えてきました。Chrome の文字列が Mozilla/5.0 で始まり、AppleWebKit、KHTML, like Gecko、Safari を含んでいるのも、Edge や Opera が Chrome の文字列の末尾に Edg/ や OPR/ を付けて送信しているのもそのためです。

そのため、パーサーは最も具体的なトークンから順に、決まった順序で判定する必要があります。このツールはまず bot と HTTP ライブラリを調べ、次に独自のトークンを付けるブラウザを調べ、最後に Chrome と Safari を判定します。この 2 つのトークンは、ほかの多くのブラウザも含めているためです。

Chromium がほとんどを固定した理由

この文字列はすべてのリクエストで各サーバーに送信され、その詳細はユーザーのフィンガープリンティングに利用されていました。そこで Chrome は文字列を簡略化し、ほかの Chromium 系ブラウザもそれに続きました。現在、バージョンは 131.0.0.0 のように送信され、正しいのはメジャー番号だけです。プラットフォーム部分も、実際のシステムに関係なく Windows NT 10.0; Win64; x64 や Android 10; K のような固定値になっています。

詳細が必要なサイトは、User-Agent Client Hints で要求する必要があります。リクエストヘッダーの Sec-CH-UA と、JavaScript の navigator.userAgentData です。結果の下の表には、使用中のブラウザが提供している場合にその値を表示します。

機能検出を優先する

この文字列は一部が固定され、ほかのブラウザを装っており、クライアントが自由に書き換えることもできるため、どのコードを実行するかを決める手段としては不向きです。代わりに機能そのものを検出してください。JavaScript なら 'share' in navigator、CSS なら @supports を使います。こうすれば、聞いたこともないブラウザや、まだ存在しないバージョンでも正しく判定できます。

それでも、統計を取る場合、ログでクローラーと人間を見分ける場合、特定のブラウザバージョンのバグを回避する場合には、文字列を読み取るのは妥当な方法です。

よくある質問

Chrome のバージョンが .0.0.0 で終わるのはなぜですか?

Chrome をはじめとする Chromium 系ブラウザは、フィンガープリンティングを抑えるためにユーザーエージェント文字列を簡略化しています。送信されるのはメジャーバージョンだけで、マイナー、ビルド、パッチの番号はゼロに置き換えられます。完全なバージョンは User-Agent Client Hints で取得できます。

ユーザーエージェント文字列で Brave と Chrome を見分けられますか?

いいえ。Brave は意図的に Chrome と同じ文字列を送信するため、パーサーには Chromium 系ブラウザだということしかわかりません。独自のトークンを付けないブラウザはすべて同様です。

Mac が macOS 10.15.7 と報告されるのはなぜですか?

Safari、Chrome、Firefox は文字列内の macOS のバージョンを 10.15 で更新しなくなったため、それ以降の macOS でも同じ番号が報告されます。また、Apple シリコン搭載の Mac でも文字列には Intel と書かれます。

ユーザーエージェント文字列は偽装できますか?

はい。クライアントはどんな文字列でも送信でき、多くの bot が一般的なブラウザの文字列を送っています。セキュリティ上の判断の根拠にはしないでください。Googlebot などのクローラーを確認するには、運営元が公開している方法に従って、リクエスト元のアドレスを確認します。

貼り付けた文字列はサーバーに送信されますか?

いいえ。解析はブラウザのタブ内の JavaScript で行われます。このツールがその文字列を含むネットワークリクエストを送ることはありません。

ネットワークのほかのツール