/[pub]/suikawiki/sw4data/ids/2/1.txt
Suika

Contents of /suikawiki/sw4data/ids/2/1.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.21 - (hide annotations) (download)
Sun Feb 27 14:13:11 2011 UTC (13 years, 9 months ago) by wakaba
Branch: MAIN
Changes since 1.20: +6 -2 lines
File MIME type: text/plain
updated by (anon)

1 wakaba 1.6 [14] [DFN[[CODE(URI)@en[[[http:]]]]]] は、 [[HTTP]] によってアクセスできる[[資源]]を表す
2     [[URL scheme]] です。
3 wakaba 1.2
4 wakaba 1.7 ;; [15] [[Semantic Web]] の世界では、実際には [[HTTP]] でアクセスしても存在していない[[資源]]や、
5 wakaba 1.6 [[HTTP]] によって[[メタデータ]]が取得できるに過ぎない[[資源]]にも [CODE(URI)@en[[[http:]]]] [[URL]]
6     が濫用されています。
7 wakaba 1.2
8 wakaba 1.9 * 仕様書
9    
10     - [18] [CITE@en[RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1]]
11     <http://tools.ietf.org/html/rfc2616#section-3.2.2>
12    
13 wakaba 1.7 * 意味
14 wakaba 1.2
15 wakaba 1.9 [19] [CODE(HTTP)@en[[[http:]]]] [[URL]] は、指定された [[host]]、[[port]] に [[HTTP]] over [[TCP]]
16     で接続し、 [[path]] と [[query]] を [CODE(ABNF)@en[[[Request-URI]]]] として指定したときに得られる[[資源]]を識別しています。
17     [SRC[>>18, [[RFC 2616]] 正誤表]]
18    
19 wakaba 1.7 ** Semantic Web 界での解釈
20    
21     [5]
22     [CITE[What do HTTP URIs Identify? - Design Issues]] <http://www.w3.org/DesignIssues/HTTP-URI>
23     ([[名無しさん]])
24    
25     [6]
26     [CITE[What do HTTP URIs Identify? - Design Issues]] <http://www.w3.org/DesignIssues/HTTP-URI2.html>
27     ([[名無しさん]])
28 wakaba 1.2
29 wakaba 1.7 [7]
30     [CITE[TAG Issues List]] <http://www.w3.org/2001/tag/issues.html?type=1#httpRange-14>
31     ([[名無しさん]])
32 wakaba 1.2
33 wakaba 1.7 [8]
34     [CITE@EN[URNs, Namespaces and Registries]] ([CODE[2006-09-01 17:51:46 +09:00]] 版) <http://www.w3.org/2001/tag/doc/URNsAndRegistries-50-2006-08-17.html>
35 wakaba 1.2
36 wakaba 1.10 * Authority
37    
38     [81] [[IPアドレス]]を使うことは可能な限り避ける[['''べきです''']] [SRC[>>18]]。
39    
40 wakaba 1.17 [87] 仕様上は、 [CODE(ABNF)@en[[[userinfo]]]] を使うことは認められていません。
41 wakaba 1.18 これは >>97 から [[RFC 2616]] (>>86) までずっと変わっていません。
42    
43     ;; [98] 認められなかったというよりは、単に追加されなかっただけでしょうな。
44     初期の [[HTTP]] には[[認証]]が何も実装されていませんでしたから。
45 wakaba 1.12
46 wakaba 1.10 ** 串における処理
47    
48     [83] [[串]]は、[[ホスト名]]が [[FQDN]] でなければ、[[ホスト名]]を追加して[['''構いません''']]。
49     [[FQDN]] は書き換えては[['''なりません''']]。 [SRC[>>18]]
50    
51     * Port
52    
53     [20] [[既定のポート]]は [CODE[[[80]]]] です [SRC[>>18]]。
54    
55     * Path
56    
57     [82] [[path]] が省略されている場合、 [[HTTP]] [[要求]]の [CODE(ABNF)@en[[[Request-URI]]]]
58     としては「[CODE(URI)@en[[[/]]]]」を使わなければ[['''なりません''']] [SRC[>>18]]。
59 wakaba 1.2
60 wakaba 1.19 ** 予約されている path
61    
62     [99] 次に述べる [[path]] は、公式または非公式に予約されていて、特定の目的に使われます。
63    
64     - [100] [CODE(URI)@en[/[[robots.txt]]]]
65     - [101] [CODE(URI)@en[/[[favicon.ico]]]]
66     - [12] [CODE(URI)@en[[[/.well-known/]]]]
67 wakaba 1.2
68 wakaba 1.20 ** ホーム・ディレクトリー
69    
70     [102] [CODE(URI)@en[http://[VAR[host]]/~[VAR[username]]/[VAR[path]]]] のような [[URL]]
71 wakaba 1.21 は、[[利用者]] [VAR[username]] に割り当てられた領域を意味するものとして使う慣習があります。
72 wakaba 1.20 [VAR[host]] は通常は [[ISP]] や[[大学]]などの所有する[[ドメイン名]]であり、
73     [[会員]]や[[教員]]・[[学生]]に [[Web]] 公開用の領域として割り当てています。
74    
75     [103] [CODE(URI)[[[~]]]] は、 [[Unix]] で[[ホーム・ディレクトリー]]を表す記号として用いられていて、
76     それをそのまま [[URL]] として使っているものと推測されます。
77    
78 wakaba 1.21 [104] [[Apache]] などの普及している
79 wakaba 1.20 [[HTTP]] [[鯖]]の既定の設定においては、 [CODE(URI)@en[/~[VAR@en[username]]/]]
80     は[[ファイル・システム]]上の [CODE(file)@en[~[VAR@en[username]]/[[public_html]]/]]
81     に対応します。
82    
83 wakaba 1.21 [105] 近年では組織が構成員に [[Web]] 用の領域を割り当て、
84     そこを使って [[Webサイト]]を公開することが少なくなってきたので、
85     この形式の [[URL]] を見ることも減ってきました。 [TIME[2011-02-27T14:13:06.00Z]]
86    
87 wakaba 1.16 * 長さ
88    
89     [94] [[URLの長さ]]を参照してください。
90    
91 wakaba 1.14 * 正準形
92    
93     [92] [[HTTPにおけるURLの比較]]を参照してください。
94    
95 wakaba 1.7 * 処理モデル
96 wakaba 1.2
97 wakaba 1.11 ** 比較
98    
99     [84] いつ使うのかは不明確ではありますが、 [[HTTPにおけるURLの比較]]の方法が定義されています。
100    
101 wakaba 1.7 ** フォーム提出
102 wakaba 1.2
103 wakaba 1.7 [11] [CITE@en-GB-x-Hixie[Web Forms 2.0]] ([TIME[2009-01-05 20:07:15 +09:00]] 版) <http://www.whatwg.org/specs/web-forms/current-work/#for-http>
104 wakaba 1.2
105 wakaba 1.7 * 不思議解釈
106 wakaba 1.2
107     [4]
108    
109     > RFC 2616 には HTTPプロトコルに関することが書かれており,3.2.2 http URL に書かれている http URL も,HTTPプロトコルの中での話になります.一般に,HTML のリンクに使用されるものは,純粋に HTTPプロトコルの中で使用される http URL ではなく, scheme が http であるURI References です.
110    
111     出典: [CITE[Perlメモ]] <http://www.din.or.jp/%7Eohzaki/perl.htm#httpURL>
112     (2005年3月現在)
113    
114     このような解釈は正しく'''ありません'''。 [[IANA]]
115     の [[URI scheme]] 登録簿に拠れば [CODE(URI)[[[http]]:]]
116     URI scheme の出典は [[RFC 2616]] であり、 [[IETF]]
117     的に有効な [CODE(URI)[[[http]]:]] [[URI]] の規定は
118     ([[HTTP]] であれ [[HTML]] であれ、その他の文脈であれ)
119     [[RFC 2616]] だけです。
120    
121     更に
122    
123     > たとえば http://user:passwd@www.din.or.jp/~ohzaki/perl.htm#URI は URI References ですが,user:passwd@ の部分,すなわち,userinfo や,#URI の部分,すなわち, Fragment Identifier は HTTPプロトコルの中で使用される http URL としては不正なものとなります.しかし,HTML のリンクとしては問題ありません.なぜなら,クライアント(ブラウザ)が HTTPプロトコルで通信する際にはそれらを削除しているからです.
124    
125     と説明がありますが、このような議論は実装がそうであるというだけで、
126     仕様がそうであるとの根拠はありません。
127     ([[RFC 2396]] の時代に [[URI参照]]の一部分ではあっても [[URI]]
128     の一部分ではなかった[[素片識別子]]は別として、)
129     単に仕様と実世界が整合していないというだけであって、
130     [[HTTP]] で使うか [[HTML]] で使うかは関係ありません。
131    
132     個々の [[URI scheme]] の規定は [[RFC 2396]] (や新しい [[RFC 3986]])
133     の一般の規定に優先するので、 [[RFC 2396]] で許されるように見えても
134     [[RFC 2616]] で許されないものは、すべて認められません。
135    
136     ([CODE(URI)[[[ftp]]:]] [[URI]] に関する部分にも同様の指摘ができます。
137     ただし [CODE(URI)[[[ftp]]:]] [[URI scheme]] の仕様は未だにいにしえの
138     [[RFC 1738]] のままで、実装とまったく整合していません。)
139    
140 wakaba 1.7 * 歴史
141 wakaba 1.2
142 wakaba 1.18 ** 太古の定義
143    
144     [97] [CITE[HTTPAddressing -- /Addressing]] ([TIME[1992-04-13 17:08:21 +09:00]] 版) <http://www.w3.org/History/19921103-hypertext/hypertext/WWW/Addressing/HTTPAddressing.html>
145    
146 wakaba 1.17 ** RFC 1630 の定義
147    
148     [96] [CITE@en[RFC 1630 - Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web]]
149     <http://tools.ietf.org/html/rfc1630#page-13>
150    
151     ** RFC 1738 の定義
152    
153     [95] [CITE@en[RFC 1738 - Uniform Resource Locators (URL)]]
154     <http://tools.ietf.org/html/rfc1738#section-3.3>
155    
156 wakaba 1.13 ** RFC 1945、RFC 2068 の定義
157 wakaba 1.2
158 wakaba 1.13 [2] [CODE(HTTP)@en[[[http:]]]] [[URL]] は [[HTTP/1.0]]、[[HTTP/1.1]] の仕様の一部として
159     [[RFC 1945]] 3.2 [SRC[>>90]]、[[RFC 2068]] 3.2 で規定されました。
160 wakaba 1.3
161 wakaba 1.13 [88] この仕様は当時の [[URL]] の正式な規定であるところの [[RFC 1738]] や [[RFC 1808]]
162     に[[意図的違反]]していました。具体的には、本来 [[URL]] では使えないはずの [CODE(ABNF)@en[[[national]]]]
163     の[[オクテット]] (つまり任意の[[オクテット]]) が認められていたりしました。
164     その理由としては、[[鯖]]は[[文字]]の制約に縛られていないこと、
165     [[串]]はどのみち受け入れるしかないことが挙げられていました。
166    
167     ;; [91] [[誤り処理]]であるとも取れますが、曖昧ですな。
168    
169     [89]
170     なんかこの [[ABNF]] 構文破綻してる気がしますが。。。
171 wakaba 1.7 例えば [CODE(ABNF)[segment = 2068.segment - "/"]]
172     と定義しておかないと[[欲張り]]過ぎるんじゃ?
173 wakaba 1.4
174 wakaba 1.14 *** 仕様書
175 wakaba 1.13
176     - [90] [CITE@en[RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0]]
177     <http://tools.ietf.org/html/rfc1945#section-3.2.2>
178 wakaba 1.15 - [93] [CITE@en[RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1]]
179     <http://tools.ietf.org/html/rfc2068#section-3.2.2>
180 wakaba 1.13
181 wakaba 1.12 ** RFC 2616 の定義
182    
183 wakaba 1.13 [85] [[RFC 2068]] の改訂である [[RFC 2616]] では、 [CODE(ABNF)@en[[[national]]]]
184     を認めていた独自の定義は削除され、 [[RFC 2396]] に定義を委ねる形になっています。
185 wakaba 1.12
186     [86]
187     >
188     [PRE(ABNF code)[
189     http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
190     ]PRE]
191    
192 wakaba 1.6 * テスト・ケース
193    
194     [1] ''Another HTML-lint : Explanation'' <http://openlab.ring.gr.jp/k16/htmllint/explain.html#illegal-format-url>
195     正しくない [[URI]] の例が幾つかあります。
196    
197 wakaba 1.4 * 関連
198    
199 wakaba 1.7 [16] [CODE(URI)@en[[[http:]]]] に非常によく似た [[URL scheme]] として、
200     [[HTTP/TLS]] を表す [CODE(HTTP)@en[[[https:]]]]、 [[SHTTP]] を表す
201     [CODE(HTTP)@en[[[shttp:]]]] があります。
202    
203 wakaba 1.8 [17] [[Web]] の[[掲示板]]などでは、 [CODE(HTTP)@en[[[http:]]]] [[URL]] を検知して自動的に[[ハイパーリンク]]として解釈する機能が適用されることを防ぐため、
204     [CODE(HTTP)@en[[[ttp:]]]]、[CODE(HTTP)@en[[[tp:]]]]、[CODE(HTTP)@en[[[p:]]]]
205     といった [[URL scheme]] を用いたり、 [[URL scheme]] を省略して [CODE(URI)[[[:]]]]
206     から始めたり、 「[CODE(HTTP)@en[[[http]]]]」の一部又は全部を[[全角]]で表記したりすることがあります。
207    
208 wakaba 1.4 [13] [[HTTPにおけるURL]]の項もご覧ください。

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24