* IPv6 アドレス
[82] [[RFC 6874]] は[[IPv6アドレス]]に[[ゾーン識別子]]を添える構文を規定していますが、[[クライアント]]や[[プロキシ]]などは外に出す
[[URL]] から[[ゾーン識別子]]を削除しなければ[['''ならない''']]としています。 [CODE(HTTP)@en[[[Host:]]]]
は [[URL]] ではありませんが、これに準じるなら[[ゾーン識別子]]を含めるべきではなさそうです。
* 仕様書から
** RFC 2068・2616 (HTTP/1.1)14.23 Host
> The Host request-header field specifies the Internet host and port
number of the resource being requested, as obtained from the original [DEL[URL]] [INS[URI]] given by the user or referring resource (generally an HTTP URL,
as described in section 3.2.2). The Host field value MUST represent
the [DEL[network location]] [INS[naming authority]] of the origin server or gateway given by the
original URL. This allows the origin server or gateway to
differentiate between internally-ambiguous URLs, such as the root "/"
URL of a server for multiple host names on a single IP address.
[CODE(HTTP)[Host]] 要求頭欄は、利用者又は参照している資源により与えられている元の
URI (通常は 3.2.2 節で説明している HTTP URL) から得た要求する資源のインターネット・ホスト及びポート番号を指定します。
[CODE(HTTP)[Host]] 欄値は、元の URL で与えられた起源サーバーまたは関門の
naming authority を表現しなければ'''なりません'''。
これによって起源サーバー又は関門は内部的に曖昧な、単一の IP
アドレスの複数のホスト名を持つサーバーでの根 [CODE(URI)[/]] URL
のような URL を互いに区別することができます。
>
- Host = "Host" ":" host [ ":" port ] ; Section 3.2.2
> A "host" without any trailing port information implies the default
port for the service requested (e.g., "80" for an HTTP URL). For
example, a request on the origin server for
[DEL[MUST]] [INS[would properly]] include:
[CODE(ABNF)[host]] に尾続のポート情報がないときは、
要求されたサービスの既定ポート (HTTP URL では [CODE[80]])
を暗示します。例えば、 の起源サーバーの要求は次のものを適切に含むこととなります。
>
[PRE[
GET /pub/WWW/ HTTP/1.1
Host: www.w3.org
]PRE]
> A client MUST include a Host header field in all HTTP/1.1 request
messages [DEL[on the Internet (i.e., on any message corresponding to a request for a URL which includes]] [INS[. If the requested URI does not include]]
an Internet host [DEL[address]] [INS[name]] for the
service being requested[DEL[)]][INS[, then the Host header field MUST be given with an empty value]]. [DEL[If the Host field is not already present, an]] [INS[An]]
HTTP/1.1 proxy MUST [DEL[add a Host field to the request message prior to forwarding it on the Internet.]] [INS[ensure that any request message it forwards does contain an appropriate Host header field that identifies the service being requested by the proxy.]] All Internet-based HTTP/1.1 servers
MUST respond with a 400 [INS[(Bad Request)]] status code to any HTTP/1.1 request message
which lacks a Host header field.
クライアントは、全ての HTTP/1.1 要求メッセージ中に [CODE(HTTP)[Host]]
頭欄を含めなければ'''なりません'''。要求される URI
が要求するサービスのインターネット・ホスト名を含んでいない場合は、
[CODE(HTTP)[Host]] 頭欄には空の値を与えなければ'''なりません'''。
HTTP/1.1 串は、その転送するメッセージがその串の要求するサービスを識別する適当な
[CODE(HTTP)[Host]] 頭欄を含むようにしなければ'''なりません'''。
> See sections 5.2 and [DEL[19.5.1]] [INS[19.6.1.1]] for other requirements relating to Host.
** RFC 2326 (RTSP) 12.21 Host
> This HTTP request header field is not needed for RTSP. It should be
silently ignored if sent.
[1] この HTTP 要求頭欄は RTSP には必要ではありません。
送られても黙って無視するのが良いです。
** RFC の部分の License
[[RFCのライセンス]]
* 実装について
[3] [[NN]] は、2 で既に
[CODE(HTTP)[Host]] 頭欄を送ってくれます。
(1 は未確認)
[4] [[WinIE]] は、3 未満は送ってくれません。
[[#comment]]
* メモ
- [2] この [[HTTP/1.1]] との温度差は、 [[RTSP]]/1.0
では[[要求行]]の [[URI]] が [[HTTP]] とは違って [CODE(ABNF)[scheme]]
から始まる完全な[[絶対URI]] であるためです。
[6]
[CITE@en-us[IP Version 6 Support]] ([TIME[2007-02-22 09:23:49 +09:00]] 版)
([[名無しさん]] [WEAK[2007-02-22 00:31:45 +00:00]])
[81] [CITE@en[RFC 2660 - The Secure HyperText Transfer Protocol]]
( ([TIME[2013-07-20 22:21:48 +09:00]] 版))