#?SuikaWiki/0.9 [1] [CODE(HTTP)[Content-Base:]] 欄は、[[実体]]の[[基底URI]] を指定するための頭欄で、 [[HTTP]] や [[MIME]] で使われることを想定していました。 しかし実際には殆ど使われず、しかも [CODE(HTTP)[[[Content-Location]]:]] 欄との使い分けが不明瞭であったことから、実質的に廃止されています。 - [10] 本来はその名のとおり CL は位置、 CB は基底だったんですけどねぇ。 CL 指定すれば敢えて CB 指定する必要はないし。 (意味的には確かに異なるけど、実際必要な場面ってねぇ。) [[#comment]] *長い URI [6] [[MIME]] メッセージに行長制限があるのに対し、 [[URI]] の長さには制限がありません。そこで、 RFC 2110 は 「[[URLBODY]] の方法」を採用しています。つまり、 URI 中に自由に [[FWS]] を挿入することが出来、解釈する時には取り除かなければならない、ということです。 [8] [[ML]] の [[HTML]]ed archive で発見したので作成した [[MUA]] とかはわからないんですが、こんな [CODE(MIME)[Content-Base:]] 欄を出力する MUA がいるようです。 Content-Base: "http://foo.example/ path/to/base/URI /%28very%20very%20long%2E%29?foo=bar;bar=foo" すなわち、 [URLBODY] の方法で URI 中に FWS を挿入し、かつ [CODE(ABNF)[<">]] で括っています。 [9] >>8 というかそもそも [CODE(MIME)[Content-Base:]] 欄が使われているの自体はじめてみました。 ちなみに [CODE(MIME)[Content-Location:]] 欄と併用されては''いません''でした。 - [11] 先頭に [CODE(char)["]] が来る URI はありえませんし、そもそも URI に [CODE(char)["]] は使えませんから、quoted と標準の書式は安全に区別できますので、実装は両形式に対応しておいて損はないでしょう。 [[#comment]] * 仕様書から ** RFC 2068 (HTTP/1.1) 14.11 Content-Base >The Content-Base entity-header field may be used to specify the base URI for resolving relative URLs within the entity. This header field is described as Base in RFC 1808, which is expected to be revised. [CODE(HTTP)[Content-Base]] 実体頭欄は、実体中の相対 URL を解決するための基底 URI を指定するのに使うことができます。 この頭欄は、改訂が期待される [[RFC1808]] では [CODE[Base]] として説明されているものです。 > - Content-Base = "Content-Base" ":" absoluteURI > If no Content-Base field is present, the base URI of an entity is defined either by its Content-Location (if that Content-Location URI is an absolute URI) or the URI used to initiate the request, in that order of precedence. Note, however, that the base URI of the contents within the entity-body may be redefined within that entity-body. [4] [CODE[Content-Base]] 欄が無い場合、実体の基底 URI は、実体の [CODE[Content-Location]] ([CODE[Content-Location]] が絶対 URI の場合。) 又は要求を始めるのに使った URI のいずれかにより、この優先順で定義されます。 ただ、実体本体中の内容の基底 URI は実体本体中で再定義されるかもしれないことに注意して下さい。 **MHTML (RFC 2110) -[5] content-base ::= "Content-Base:" absoluteURI (詳しくは [CODE(WikiPage)[[[RFC2110]>>2]]]] をご覧下さい。) **RFC の部分の License [[RFCのライセンス]] *メモ - [7] [[相対URI]] でも良い [[Content-Location:]] 欄に対して、 [CODE[Content-Base:]] 欄は[[絶対URI]] しか使えません。