0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UserAgentの名称詳細

Last updated at Posted at 2022-06-19

はじめに

UserAgent (UA) は、httpリクエストがどのデバイス、どのブラウザからのものか判別する上で、あるいはデバイスやブラウザごとにwebサーバの挙動を設定する上で重要です。しかし、その名前は複雑で、firefoxでないのにmoizllaが入っていたり、Safariでないのにweblkitが入っていたり、難しい...
そのあたりを調査した記録として本記事を残します。
次節にて、webブラウザの元となるシステムについてまとめ、その後にUAとその値の由来について記載ます。

以下の記事がとてもまとまっているので、最終的にはこちらを参照するのがよいかと思いますが、必要最低限のメモとして本記事を書いています。

レンダリングエンジン

ここでは、UserAgentを解釈するために必要なレンダリングエンジンについて超簡単に記します。

KHTML / KJS

KHTMLは、KDEプロジェクトで開発されている、htmlレンダリングエンジンです [1]。KJSはJavaScriptのエンジンです。現在では、これらを基に作られた、Webkit (次項) を利用することが一般的となっているようです。

Webkit

Webkitは、MacやiOSなどで動くSafariなどで利用される、レンダリングエンジンです[2]。weblkitのページ[2]では、World Wide Web (WWW) のみならず、その他のアプリケーションでも使える包括的なengineにしたい、という意味を込めてWeb Content Engineと呼んでいるようです。
KHTML (前項) を基にAppleなどが中心となって開発を開始し、OSSとして発展を続けています。

Chromium

ChromiumGoogleが中心となって開発をしている、OSSのブラウザプロジェクトです[3]。Google ChromeMicrosoft Edgeはこれを利用しています。
当初、ChromiumはWebkitをベースとして開発されていましたが、現在ではBlinkがベースになっています[4]。

Blink

Blinkは、2022年現在、Chromiumで利用されているレンダリングエンジンです[5]。Webkitから分岐して作成されています[6]。

Gecko

Mozillaプロジェクトが開発したレンダリングエンジンです[6]。Firefoxなどで利用されています。

Trident

InternetExplorerで利用されていたレンダリングエンジンです[7]。

UserAgentの値の意味

以下のqiita記事から代表的なUAを抜粋しつつ、その値について見ていきたいと思います。
あくまでいくつかの例について説明しているので、これがすべてではないかとは思います。

なお、UserAgentは次の書式で書かれています[8]。
User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>

Mac

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:62.0) Gecko/20100101 Firefox/62.0

FirefoxでのUAは上記の通りです。(Machintosh ...) でMacからのアクセスであることがわかります。
FirefoxはGeckoベースなので、Geckoの文字列と、ブラウザであるFirefoxがあります。

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15

SafariでのUAは上記の通りです。SafariはWebkitベースなので、AppleWebKitの文字列があります。前述の通り、WebkitはKHTMLを継承している都合、KHTMLが記載されています。
さて、続いてのlike Geckoについて。かつてGeckoが他と比べて高く評価されていた時代に、Geckoのようにふるまうように設定した、とのことらしいが、いまいち英文を読んでもぴんときませんでした (なんとなくはわかるが、これだ!とパシッといえない)。
以下に引用しておきます[9]。

And Gecko was good, and IE was not, and sniffing was reborn, and Gecko was given good web code, and other browsers were not. And the followers of Linux were much sorrowed, because they had built Konqueror, whose engine was KHTML, which they thought was as good as Gecko, but it was not Gecko, and so was not given the good pages, and so Konquerer began to pretend to be “like Gecko” to get the good pages, and called itself Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko) and there was much confusion.

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

こちらはChrome。Chromeの基盤であるchromiumはWebkitベースだったため、同じくWebkitベースのSafariと同じように AppleWebKit/xxx.xx (KHTML, like Gecko)Safari/xxx.xx が残っています。

Windows

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36

こちらはFirefoxとChrome。Macと同様のため説明は省略します。

Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

こちらはIEです。Tridentの文字が入っています。like Geckoは前述の通り。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36 Edg/94.0.992.31

最後にEdgeです。EdgeはChromiumを利用しているので、Chromeからのアクセス時の書き方を継承しつつ、ブラウザを表すEdge が入っています。

最後に

UAは、プライバシーの観点から、削除される可能性が高まっています。
Google Chromeは、UAから、User-Agent Client Hints への移行を進めています[10]。各種ブラウザで同じことになれば、こうしたUAの煩わしさからは解放されるのかもしれませんね。

参考文献

qiita記事については本文中に埋め込んでいます。
[1] https://api.kde.org/frameworks/khtml/html/index.html
[2] https://webkit.org/
[3] https://www.chromium.org/chromium-projects/
[4] https://ascii.jp/elem/000/000/778/778554/
[5] https://www.chromium.org/blink/
[6] https://chromium.googlesource.com/playground/chromium-org-site/+/refs/heads/main/blink/index.md
[7] https://wa3.i-3-i.info/word1361.html
[8] https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/User-Agent
[9] https://webaim.org/blog/user-agent-string-history/
[10] https://www.datacurrent.co.jp/column/useragent-20211015/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?