* 仕様書

[REFS[
- [16] [CITE@en[RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]] ([TIME[2014-06-07 01:59:35 +09:00]] 版) <https://tools.ietf.org/html/rfc7230#section-2.1>
]REFS]

* HTTP 利用者エージェント

[17] [[利用者エージェント]]は、[[要求]]を開始する色々な[[クライアント]]プログラムです。
例えば[[ブラウザー]]、[[スパイダー]] ([[Web]] ベースの[[ロボット]])、
[[コマンドライン]]ツール、カスタムアプリケーション、モバイルアプリケーションなどがあります。 [SRC[>>16]]

;; [18] 「[[クライアント]]」も[[要求]]を送信する[[プログラム]]と定義されていて、
[[利用者エージェント]]と交換可能な用語のようにも思えますが、そうは明記されておらず、
[[RFC]] 著者の意図が何であるのかはっきりしません。

[19] 「利用者」エージェントは、[[要求]]の時点で必ずしも[[人間]]の[[利用者]]が当該ソフトウェアを操作している必要はありません。自動で動作する[[ボット]]であっても、
[[利用者エージェント]]です。 [SRC[>>16 2.2.]]

** 状態

[20] [[HTTP]] [[利用者エージェント]]は、次の一時的または永続的な状態や設定を保持するか、
または保持できます。

[FIG(list members)[
: [[上流]]の[[串]]の一覧 :
: [[HSTSポリシー]] :
: [[既知ピン付きホスト]] :
: [[代替サービス]] :
: [[接続プール]] :
: 処理済みの[[HTTPリダイレクト]]の一覧 (無限リダイレクト防止用) :
: [[応答]]待ちの[[要求]]の一覧とタイムアウト時刻 :
: 保存された [[Cookie]] の一覧 :
: [[キャッシュ]] :
: [F[対象][Pointer Lock対象]] :
[[固定状態]]において[[マウスイベント]]を転送するべき[[要素]]です。
: [F[元のカーソル位置]] :
]FIG]

* Web ブラウザー

[1] [[Webブラウザー]]を参照。

* プッシュ

[7] 
[DFN[[RUBYB[利用者エージェント][user agent]]]]は、
[[プッシュメッセージ]]の[RUBYB[受信者][recipient]]たる[[装置]]や[[ソフトウェア]]です。
[SRC[>>6]]

[9] 
[[利用者エージェント]]は、[[プッシュサービス]][[資源]]の [[URL]]
を事前に知っておく必要があります。

[REFS[
- [6] [CITE@en[RFC 8030 - Generic Event Delivery Using HTTP Push]], [TIME[2020-03-09 00:13:33 +09:00]] <https://tools.ietf.org/html/rfc8030#section-1.1>
]REFS]

* 歴史

[FIG(quote)[
[FIGCAPTION[
[11] [[HTTP]] ([[RFC1945]] 1.2, [[RFC2068]] 1.3, [[RFC2616]] 1.3)
]FIGCAPTION]

>
:user agent: The client which initiates a request. These are often browsers,
editors, spiders (web-traversing robots), or other end user tools.

:利用者エージェント: [[要求]]を始める[[クライアント]]。
しばしば[[ブラウザ]]であったり、[[エディタ]]であったり、
[[蜘蛛]] (ウェブ探索ロボット), であったり、他の末端利用者工具だったりします。
]FIG]

[12]
利用者の入力を受付け、その入力の
WWW の解釈を提示するソフトウェア又はハードウェア機器。
([[ISO‐HTML]] <http://purl.org/NET/ISO+IEC.15445/15445.html#DEFS> 4.13 参照。)

[8]
>
:[RUBYB[利用者エージェント][user agent]]:
利用者エージェントは、この仕様に従って [[XHTML]]
[[文書]]を処理する[[システム]]です。

[REFS[
- [[XHTML 1.0]]
--[CITE[2.2. General Terms]]
<IW:XHTML10:"general">
]REFS]

[13]
>
:[DFN[[RUBYB[[[利用者エージェント]]]@en[User Agent]]]]:
[[XHTML Mobile Profile]] [[文書]]その他の[[資源]]を[[利用者]]に代わり[[解釈]]する[[ソフトウェア]]や[[装置]]

;; [[XHTML Mobile Profile]] (2001年10月29日) 3.2

[14] [CITE[Introduction – SVG 1.1 (Second Edition)]]
( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
<http://www.w3.org/TR/2011/REC-SVG11-20110816/intro.html#TermUserAgent>

[15] [CITE[Widget Interface]]
( ([TIME[2013-10-29 00:58:56 +09:00]] 版))
<http://www.w3.org/TR/widgets-apis/#user-agent-0>


[FIG(quote)[
[FIGCAPTION[
[2] [CITE@en[Pointer Lock]]
([TIME[2016-10-19 08:10:29 +09:00]])
<https://w3c.github.io/pointerlock/#dfn-user-agent>
]FIGCAPTION]

> This specification defines conformance criteria that apply to a single product: the user agent that implements the interfaces that it contains.

]FIG]


[3] [CITE@en[Define "user agent"]]
([[jyasskin]]著, [TIME[2019-09-23 23:06:27 +09:00]])
<https://github.com/whatwg/infra/commit/d4a3e9003e6695e3e1379a8581d945759566bfac>

[4] [CITE@en[Define "user agent". by jyasskin · Pull Request #269 · whatwg/infra]]
([TIME[2020-01-28 20:33:16 +09:00]])
<https://github.com/whatwg/infra/pull/269>

[5] [CITE@en[Define "user agent" · Issue #1021 · whatwg/html]]
([TIME[2020-01-28 20:34:10 +09:00]])
<https://github.com/whatwg/html/issues/1021>