/[suikacvs]/test/sw/ids/0/248.txt
Suika

Contents of /test/sw/ids/0/248.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Mon Mar 2 01:21:40 2009 UTC (16 years, 3 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
converted from SuikaWiki3 <http://suika.fam.cx/gate/cvs/suikawiki/wikidata/page/4C696E6B.txt>

1 wakaba 1.1
2    
3     * Link: 実体頭欄 (HTTP, 822)
4    
5     [1] [[HTTP]] や [[822]] ([[電子メイル]]・[[電子ニュース]])
6     の [DFN[[CODE(HTTP)[Link:]] [[実体頭欄]]]]は、
7     [[実体]]と他の[[資源]]との関係を表現します。
8    
9     この頭欄は [[HTML]] の [CODE(HTMLe)[[[link]]]]
10     要素型の要素と意味的には同じです。
11    
12     [30] 仕様書:
13     - [[HTML 4]]
14     -- 12.4.1 Resolving relative URIs
15     <IW:HTML4:"struct/links.html#h-12.4.1">
16     -- 14.6 Linking to style sheets with HTTP headers
17     <IW:HTML4:"present/styles.html#idx-HTTP-2">
18    
19     [46]
20     [CITE@en[HTTP Header Linking]]
21     <urn:ietf:id:draft-nottingham-http-link-header-00>
22     ([[名無しさん]] [WEAK[2006-07-08 03:53:38 +00:00]])
23    
24     [[#comment]]
25    
26    
27     ** 引数
28    
29     [28]
30     ,名前 ,値の型 ,既定値 ,意味 ,出典
31     ,[CODE(HTTP)[[[anchor]]]] ,[[URI参照]] ,(なし) , ,[RFC 2068]
32     ,[CODE(HTTP)[[[href]]]] ,[[URI参照]] , ,リンク先 ,>>18
33     ,[CODE(HTTP)[[[rel]]]] ,[CODE(ABNF)[[[リンク型]] *([[SP]] リンク型)]] ,(なし) ,関係 ,[RFC 2068]
34     ,[CODE(HTTP)[[[rev]]]] ,[CODE(ABNF)[リンク型 *(SP リンク型)]] ,(なし) ,関係(逆方向) ,[RFC 2068]
35     ,[CODE(HTTP)[[[media]]]] ,[[媒体記述子]] , ,>>20
36     ,[CODE(HTTP)[[[title]]]] , ,(なし) ,説明 ,[RFC 2068]
37     ,[CODE(HTTP)[[[type]]]] ,[[媒体型]] ,(なし) ,>>20
38    
39     [[#comment]]
40    
41    
42     *** anchor パラメーター
43    
44     [15] 2002-10-20 (日) 07:02 ''>>5'': anchor 属性ってのがよくわかりません。現資源でもリンク先資源でもないが、関係ある第3の資源を書けばいいんでしょうか?
45    
46     [21] >>15 訳が間違っていたので直しました。
47     [CODE(HTTP)[anchor]] パラメーターは[[始点アンカー]]を当該資源ではなく
48     [[URI]] で示す他の資源 (当該資源の一部でも良い。)
49     を表すのに示すようです。
50     例えば、こんな風に使うのを想定していたのではないでしょうか。
51    
52     [PRE[
53     Link: <#section2>; anchor="#section1"; rel="next"
54     Link: <#section3>; anchor="#section2"; rel="next"
55     Link: <#section4>; anchor="#section3"; rel="next"
56     Link: <#section5>; anchor="#section4"; rel="next"
57     ]PRE]
58    
59     これが役に立つのかはちょっとわかりませんが、
60     役に立つ使い方もありそうな気はします。
61    
62     また、第3の資源云々というのは、後の [[XLink]]
63     にある、始点アンカーの要素以外で定義されたリンクの仕組みを先駆けたものなのかなあという気もしますが、
64     それを HTTP header で提供する必然性も無いですし、
65     違うのかなあ。
66    
67     [23] >>22 によれば >>21 の前者はそれで問題ないようです。
68    
69     [[#comment]]
70    
71    
72     ** 構文
73    
74     [9] 引数値の引用符は、[[空白]]を含まない限り省略できます。
75     [SRC[HTML 4, 14.6]]
76    
77     HTML 4 のこの規定は [[HTTP]] の規定に反します。
78     本来引数値の引用符が省略できるのは値が [CODE(ABNF)[[[token]]]]
79     であるときのみです。
80    
81     大体、 [CODE(char)[;]] や [CODE(char)["]]
82     が値に含まれていたら困るとわかりそうなものですが。
83    
84     [11] HTTP や電子メイルの頭で認められていない文字や[[関門]]を通過できなさそうな文字を参照するために
85     [Q[SGML 実体]<IW:HTML4:"present/styles.html#idx-HTTP-2">]を使っても構いません。
86     [SRC[HTML 4, 14.6]]
87    
88     何の断りも無く [Q[SGML 実体]<IW:HTML4:"present/styles.html#idx-HTTP-2">]が使えると言われましても、
89     何が使えるのかわかりません。まさか任意の実体を参照できるわけではあるまいし。
90     おそらくは HTML 4 [[文字実体参照]]のことを指すのでしょう。
91     でも HTML 4 の文字実体参照はすべての[[文字]]に用意されているわけではありません。
92     どうせなら[[文字参照]]も認めてくれても良いのに。
93    
94     もちろんそれ以前に、 HTTP のプロトコル要素の整合性という意味で、
95     他の頭欄では使えない [Q[SGML 実体]<IW:HTML4:"present/styles.html#idx-HTTP-2">]なるものが使えるというのは問題です。
96    
97     [[#comment]]
98    
99    
100     ** HTTP Link: と HTML <link>
101    
102     [36] [CODE(HTTP)[Link:]] 欄は、 [CODE(HTMLe)[[[link]]]]
103     要素と同じ効果を持ちます。複数の [CODE(HTTP)[Link:]]
104     欄は同じ順の [CODE(HTMLe)[link]] 要素と等価です。 [SRC[HTML 4, 14.6]]
105    
106     [33] [[HTML]] [[UA]] は、 [CODE(HTTP)[Link:]] 欄の[[相対URI参照]]を
107     [CODE(HTMLe)[[[link]]]] と同じように扱うべきです。 [SRC[HTML 4, 12.4.1]]
108    
109     [29] >>33
110     HTML 4 の基底 URI の章のメモには釈然としないものがあります。
111     HTTP の頭欄の内容の解釈に HTML の
112     [CODE(HTMLe)[[[base]]]] 要素が介入するというのは、ちょっと。
113    
114     [CODE(HTTP)[Link:]] 欄は別に HTML 専用ではなくて、
115     他の[[媒体型]]の実体に対しても使えるはずなのに、
116     どうして HTML の時だけ特別扱いなのか。。。
117    
118     (実体本体を見ずに頭部だけの処理をしたい時にも問題になります。)
119    
120     鯖側としては、相対 URI 参照を使わないか、 [CODE(HTTP)[[[Content-Base]]:]]
121     欄または [CODE(HTTP)[[[Content-Location]]:]] 欄を必ず併用することにすれば安全ですね。
122    
123     [[#comment]]
124    
125    
126     ** 電子メイルでの使用
127    
128     [39] [CODE(822)[Link:]] 欄は、 HTML
129     文書を[[電子メイル]]で送信した時にも機能するべきです。 [SRC[HTML 4, 14.6]]
130    
131     [13]
132     HTML 4 仕様書だから HTML 文書に限定していますが、
133     一般に [CODE(822)[Link:]] 欄に対応した [[MUA]] はどんな[[媒体型]]の[[実体]]でも
134     [CODE(822)[Link:]] 欄を機能させて構わないでしょう。
135    
136     [8] [[RFC 822]] メッセージは配送途中で頭欄の順序が入れ替えられてしまうことが
137     (本来は禁止されていますが、) あります。
138     これは[RUBYB[段階付け] [cascade]]に影響しますから、
139     [[著者]]は[Q[同じ頭欄の複数の実現値を併合するために頭連結を使用]<IW:HTML4:"present/styles.html#idx-HTTP-2">]
140     しても構いません。 [SRC[HTML 4, 14.6]]
141    
142     何のことかと思ってしまいますが、 HTTP
143     では[CODE(math)[同じ名前の頭欄が複数個使える ⇔ 値をいくつも読点で区切って指定できる]]と規定されていますから、
144     これが [[822]] メッセージでも使えるという表明でしょう。
145    
146     [[#comment]]
147    
148    
149     ** 仕様書から
150    
151    
152     *** RFC 1945 (HTTP/1.0) D.2.6 Link
153    
154     > The Link entity-header field provides a means for describing a
155     relationship between the entity and some other resource. An entity
156     may include multiple Link values. Links at the metainformation level
157     typically indicate relationships like hierarchical structure and
158     navigation paths.
159    
160     [2] Link 実体頭欄は[[実体]]と何か他の資源との間の関係を記述する手段を提供するものです。実体は複数の
161     Link 値を持っていても構いません。メタ情報水準のリンクは典型的には階層構造や案内経路のような関係を示します。
162    
163    
164     *** RFC 2068 (HTTP/1.1) 19.6.2.4 Link
165    
166     > The Link entity-header field provides a means for describing a
167     relationship between two resources, generally between the requested
168     resource and some other resource. An entity MAY include multiple Link
169     values. Links at the metainformation level typically indicate
170     relationships like hierarchical structure and navigation paths. The
171     Link field is semantically equivalent to the <LINK> element in
172     HTML.[5]
173    
174     [4] Link 実体頭欄は[[実体]]と何か他の資源との間の関係を記述する手段を提供するものです。実体は複数の
175     Link 値を持っていても'''構いません'''。メタ情報水準のリンクは典型的には階層構造や案内経路のような関係を示します。
176     Link 欄は意味的には HTML の <LINK> 要素と同等です。
177    
178     [10]
179    
180     >
181     - Link = "Link" ":" #("<" URI ">" *( ";" link-param )
182     >
183     -
184     [PRE[
185     link-param = ( ( "rel" "=" relationship )
186     | ( "rev" "=" relationship )
187     | ( "title" "=" quoted-string )
188     | ( "anchor" "=" <"> URI <"> )
189     | ( link-extension ) )
190     ]PRE]
191     >
192     - link-extension = token [ "=" ( token | quoted-string ) ]
193     >
194     - relationship = sgml-name | ( <"> sgml-name *( SP sgml-name) <"> )
195     >
196     - sgml-name = ALPHA *( ALPHA | DIGIT | "." | "-" )
197    
198     [INS[
199    
200     注意: RFC 2068 の [Q[URI]] とは、 [[URI参照]]
201     (URI と[[素片識別子]]の一方または両方) のことです。
202     ]INS]
203    
204     > Relationship values are case-insensitive and MAY be extended within
205     the constraints of the sgml-name syntax. The title parameter MAY be
206     used to label the destination of a link such that it can be used as
207     identification within a human-readable menu. The anchor parameter MAY
208     be used to indicate a source anchor other than the entire current
209     resource, such as a fragment of this resource or a third resource.
210    
211     [5] 関係値は大文字・小文字を区別せず、 sgml-name 構文に従う範囲で拡張'''しても構いません'''。
212     title パラメーターは link 対象に札付けするのに使って'''構いません'''。これは人可読メニュー中で識別するのに使用出来ます。
213     [CODE(HTTP)[anchor]] パラメーターは、現在の資源全体でない、
214     当該資源の断片や第3の資源を始点アンカーとして示すのに使用しても'''構いません'''。
215    
216     > Examples of usage include:
217    
218     - Link: <http://www.cern.ch/TheBook/chapter2>; rel="Previous"
219     - Link: <mailto:timbl@w3.org>; rev="Made"; title="Tim Berners-Lee"
220    
221     > The first example indicates that chapter2 is previous to this
222     resource in a logical navigation path. The second indicates that the
223     person responsible for making the resource available is identified by
224     the given e-mail address.
225    
226     [6] 最初の例は第2章が論理案内経路中でこの資源の前であることを示します。
227     2つ目は資源を利用可能にした責任者が示された電子メイル・アドレスで識別されることを示します。
228    
229    
230     *** RFC 2616 (HTTP/1.1)
231    
232     [3] [[RFC 2616]] は、 [[RFC 2068]] には書いてあるけどあまり実装されていないから説明しないよん、と言っています。
233    
234    
235     ** 他との関係
236    
237     [31] HTML 4 仕様書は、
238     [Q[[CODE(HTTP)[Link]] 頭を定義する版の HTTP では[INS[[VAR[〜]]]]]]
239     と前置きして [CODE(HTTP)[Link]] 欄を説明しています。 RFC 1945 や RFC 2068
240     の実装なら使えて RFC 2616 の実装では使えないような言い方ですが、
241     HTTP の版と頭欄の使用の可否は関係がありません。 RFC 2616
242     の実装が [CODE(HTTP)[Link]] を使うことに何ら問題はありません。
243    
244     (版が問題となるのは、非互換な変更が導入された時だけです。
245     詳しくは [[RFC 2145]] を読んでください。)
246    
247     [44]
248     HTTP 頭欄により暗示される [CODE(HTMLe)[link]] 要素や [CODE(HTMLe)[[[meta]]]]
249     要素は、 [CODE(HTMLe)[[[head]]]] 要素で明示されているものより前に出現したと定義します。
250     [SRC[HTML 4, 14.6]]
251    
252     ところで、 [CODE(HTTP)[Link:]] 欄の説明で唐突に [CODE(HTMLe)[meta]]
253     要素型が登場するわけでありますが、一体何を意味しているのでしょう?
254    
255     [[#comment]]
256    
257    
258     ** 実装
259    
260     [20] [ABBR[[[LWP]]]] (というか [CODE(perl)[[[HTML::HeadParser]]]]) は
261     HTML 中に [CODE(HTMLe)[[[link]]]] 要素があると、 [CODE(HTMLa)[[[href]]]]
262     属性は所定の形式に変換して、残りの属性は全て ([CODE(HTTP)[;]] 区切りに直した上で)
263     そのまま引数としてつけていきます。
264    
265     [[#comment]]
266    
267    
268     ** 歴史
269    
270     [18] 昔の HTTP の仕様書では [CODE(HTTP)[Link:]] 欄には
271     [CODE(HTTP)[[[href]]]] 属性もあって、
272     リンク先 URI はこちらに指定したんだそうです。
273    
274     [26] '''HTTP and HTML Metadata Linking Mechanism'''
275     I-D 1997-05, <urn:ietf:id:draft-daviel-metadata-link-00>。
276     <http://www.watersprings.org/pub/id/draft-daviel-metadata-link-00.txt>。
277    
278     [22] ''An Entity Header for Linked Resources'' <http://www.w3.org/Protocols/9707-link-header.html>: [[I-D]] の draft。
279     最終修正1999年4月。
280    
281     [24] >>22 には拡張 (未定義) 引数の例として
282     [CODE(HTTP)[[[type]]]] と [CODE(HTTP)[[[media]]]] が挙げられています。
283    
284     [25] [[WebDAV]] は最終仕様では[[リンク]]は [[XML]] の要素で表現してますが、
285     当初は HTTP の [CODE(HTTP)[Link:]] 欄を使う予定だったようで、
286     仕様の検討が行われています。
287    
288     ''Thread index of w3c-dist-auth@w3.org mailing list'' <http://lists.w3.org/Archives/Public/w3c-dist-auth/threads.html#01482>
289    
290     [48]
291     [CITE[Links for Web Authoring]] ([CODE[1996-12-09 12:09:32 +09:00]] 版) <http://www.w3.org/Authoring/WD-authlink.html>
292     ([[名無しさん]])
293    
294     [[#comment]]
295    
296    
297     ** 例
298    
299     [34] HTTP Link: 欄の例 [SRC[HTML 4, 14.6、改]]
300     [PRE(HTTP)[
301     Link: <http://www.acme.example/corporate.css>; REL=stylesheet
302     ]PRE]
303    
304     [35] >>34 を HTML 4 で書いた例 [SRC[HTML 4, 14.6、改]]
305     [PRE(HTML)[
306     <LINK rel="stylesheet" href="http://www.acme.example/corporate.css">
307     ]PRE]
308    
309     [38] 複数のスタイル・シートを指定する例 [SRC[HTML 4, 14.6、改]]
310     [PRE(HTTP)[
311     Link: <compact.css>; rel="stylesheet"; title="compact"
312     Link: <bigprint.css>; rel="alternate stylesheet"; title="big print"
313     ]PRE]
314    
315     この例では、 [SAMP(URI)[compact.css]] が[[優先スタイル]]で、
316     [SAMP(URI)[bigprint.css]] が[[代替スタイル]]です。
317    
318     [[#comment]]
319    
320    
321     ** メモ
322    
323     [37] [CODE(HTTP)[Link:]] 欄は、
324     複数の文書群にまとめて同じスタイル・シートを指定したいようなときに特に有用です。
325     [SRC[HTML 4, 14.6]]
326    
327     [14] 2002-10-20 (日) 07:00 ''[[>>10-11]]'':
328     使わないといけないのか否かはっきりしないと、 [CODE(char)[&]]
329     なんてのはよく使いそうな文字ですから、問題になります。
330    
331     [45]
332     [[Google]]の調査によれば、[CODE(HTTP)@en[[[Link]]:]] 欄もいくらかは使われているらしいです。
333    
334     ;; [CITE@en[Google Code: Web Authoring Statistics: HTTP Headers]]
335     <http://code.google.com/webstats/2005-12/httpheaders.html>
336    
337     ([[名無しさん]] [sage] [WEAK[2006-02-07 03:41:51 +00:00]])
338    
339     [47]
340     [CITE@en[Re: http-link-header in GRDDL]] ([[Harry Halpin]] 著, [CODE[2007-02-11 12:53:51 +09:00]] 版) <http://lists.w3.org/Archives/Public/ietf-http-wg/2007JanMar/0153.html>
341     ([[名無しさん]] [WEAK[2007-02-18 09:29:00 +00:00]])
342    
343     [49]
344     [CITE[LinkHeader - ESW Wiki]] ([CODE[2007-09-29 19:05:27 +09:00]] 版) <http://esw.w3.org/topic/LinkHeader>
345     ([[名無しさん]])
346    
347    
348     [50]
349     [CITE@en[Content Transformation Guidelines 1.0]] ([TIME[2008-08-01 01:46:12 +09:00]] 版) <http://www.w3.org/TR/2008/WD-ct-guidelines-20080801/#d2e1267>
350     ([[名無しさん]])
351    
352    
353     [[#comment]]
354    
355    
356     * メモ

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24