[32] [DFN[[[URL]]]] は、 [[Web]] における[[アドレス]]です。 ;; [33] 本項では主として [[HTML5]] 以降の「[[URL]]」 (現実世界の [[Webブラウザー]]における [[URL]]) について扱います。 [[IETF]] 仕様等での定義については [[URI]]、[[IRI]] などの項をご覧ください。 * 歴史 ** URI の時代 [34] 元々 [[Web]] の[[アドレス]]は「[[URL]]」と呼ばれていました。 [[RFC 1808]] までは仕様上も一般的にも [[URL]] でした。しかし、かねてから [[URL]] や [[URN]] などの上位概念としての「[[URI]]」が提唱されていて、 [[RFC 2396]] 以後は仕様上は専ら「[[URI]]」という語が使われるようになりました。 [35] 仕様上の概念としても「[[URL]]」が消滅したわけではなく、 [[URI]] の[[部分集合]]に過ぎないとされただけでしたが、 特に区別の必要の無い時は「[[URI]]」と呼称するのが好ましいとその筋の人達には考えられていました。 [36] [[URI]] の[[多文字]]拡張は、現実には [[Webブラウザー]]で「[[URL]]」の名前のまま行われていましたが、 仕様上は「[[IRI]]」という新しい呼称が与えられました。 ** URL の復調 [37] [[Web Forms 2.0]] は、はじめは当時の仕様の世界の流れに従い [CODE(HTMLe)@en[[[input]]]] [[要素]]の [CODE(HTMLa)@en[[[type]]]] [[属性]]の値として [CODE(HTML)@en[[[uri]]]] を定義していましたが、 [CODE(HTML)@en[[[url]]]] に変更されました。 [38] [[Web]] では [[CSS]] の [CODE(CSS)@en[[[url()]]]] [[関数]]、 [[JavaScript]] の [CODE(JS)@en[[[document.URL]]]] [[特性]]、 [[HTTP]] の [CODE(HTTP)@en[[[Refresh:]]]] [[欄]]の [CODE(HTTP)@en[[[url]]]] [[引数]]など、実質すべての場面で「[[URI]]」ではなく「[[URL]]」 が使われていました。 [WEAK[([CODE(DOMa)@en[[[namespaceURI]]]] など [[DOM2]] / [[DOM3]] に由来する部分だけ「[[URI]]」になっています。)]] そのため、 Web 開発者がより慣れ親しんでいる「[[URL]]」で統一することが望ましいと考えられたのです。 [39] ただし、このときはまだ[[属性値]]が [CODE(HTML)@en[[[url]]]] となっただけで、 仕様書中の表現は「[[URI]] (or [[IRI]])」などとされていました。 [51] [CITE['''['''whatwg''']''' [wf2] type="url"]] [CODE(HTML)@en[[[url]]]] への変更は [[annevk]] により提案されました。 [49] [CITE['''['''whatwg''']''' [wf2] type="url"]] 最初は [[Ian Hickson]] も [CODE(HTML)@en[[[uri]]]] が良いとしていました。 [50] [CITE['''['''whatwg''']''' [wf2] type="url"]] 他の人の意見を踏まえて [CODE(HTML)@en[[[url]]]] になりました。 ** 新しい定義 [54] [[Web Applications 1.0]] [WEAK[([[HTML5]]。[[Web Forms 2.0]] を含む。)]] は 「[[URI]] (or [[IRI]])」という表現を使っていましたが、これだけでは現実の[[Webブラウザー]]の挙動と [[HTML文書]]の[[著者]]の想定を十分記述できておらず、明確化が今後の課題とされていました。 [55] [[Web Applications 1.0]] 仕様中の他の課題が大方片付いてきた2008年5月、 [[URL]] に関して規定するべき項目のリストアップが行われました。 ;; [52] [CITE@en[Web Applications 1.0 r1534 placeholder for URL section]] ([TIME[2008-05-07 09:55:00 +09:00]] 版) [56] そして2008年6月、「[[URL]]」の定義が追加されました。“[[URI]] vs [[URI参照]]”や “[[URI]] vs [[IRI]]”、“[[URI]] vs [[絶対URI]]”といった専門家にも理解できない混乱した用語の定義を使わず、 一般的に使われている意味をベースに「[[URL]]」などの語が定義されました。また、 [[URI]]/[[IRI]] として正しいかどうかに関わらず、[[URL]] であるとして与えられたすべての[[文字列]]に関して、 [[scheme]] や [[path]] などの各部の取り出しの処理や[[絶対URL]] への[[解決]]の処理をどう行うべきか、 [[非ASCII文字]]をどう処理するべきかが初めて明確に規定されました。動的な [[DOM]] の変更によって[[絶対URL]]への[[解決]]がどう影響を受けるかも規定されました。 ;; [53] [CITE@en[HTML5 Tracker]] ([TIME[2008-06-29]] 版) [57] それまでは、 [[URI]]/[[IRI]] の仕様は正しくない[[文字列]]をどう処理するべきかを規定していませんでしたし、 [[HTML4]] など数多くの仕様書が「[[URI]]」という語の定義を正しく理解せずに書かれていたりして、 何が仕様上正しいのかを確定することもできない状況でした。現実には [[URI]]/[[IRI]] として正しくない[[文字列]]が [CODE(HTMLa)@en[[[href]]]] [[属性]]などに指定されていることはありふれていますし、 [[非ASCII文字]]は ([[IRI]] 仕様が述べているように) 単純に [[UTF-8]] として解釈するべきではないことも多々あります。 既存の[[Webブラウザー]]の動作を[[リバース・エンジニアリング]]して真似るか、 仕様書に従い役に立たないものを作るか、という不健全な時代がやっと終わり始めました。 ** XXX @@ XXX * メモ [1] [[uri@w3.org]] の長いスレッド超ワロスwwwww ([[名無しさん]] [WEAK[2008-06-26 14:42:02 +00:00]]) [2] [[Ian Hickson]] もどうせ、通るわけないだろうと最初から諦めてるんだろうね。 [[HTTP5]] 同様、議論を持ちかけたけどあっちが蹴ったという記録を残しておくために。 ([[名無しさん]] [WEAK[2008-06-26 14:45:00 +00:00]]) [3] [CITE@en["Web addresses in HTML 5" for review (ISSUE-56 urls-webarch)]] ([[Dan Connolly]] 著, [TIME[2009-03-18 22:56:59 +09:00]] 版) [4] >>3 いいかげんに「URL」の別名を増やすのはやめて欲しいものですね。 [5] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-06-28 19:49:19 +09:00]] 版) [6] [CITE@en[draft-duerst-iri-bis-06 - Internationalized Resource Identifiers (IRIs)]] ([TIME[2009-08-07 00:07:43 +09:00]] 版) [7] >>6 いいかげんに「URL」の別名を増やすのはやめて欲しいものですね。 [8] [CITE@en[Re: '''['''whatwg''']''' Stripping newlines from URI attributes (fwd)]] ([[Ian Hickson]] 著, [TIME[2009-08-05 10:07:42 +09:00]] 版) [9] [CITE@en[FW: New Version Notification for draft-duerst-iri-bis-06]] ([[Larry Masinter]] 著, [TIME[2009-07-14 05:45:39 +09:00]] 版) [10] [CITE@en[Re: FW: New Version Notification for draft-duerst-iri-bis-06]] ([[Ian Hickson]] 著, [TIME[2009-07-29 06:25:12 +09:00]] 版) [11] [CITE@en[RE: Updating the IRI spec to include "web addresses"]] ([[Larry Masinter]] 著, [TIME[2009-06-01 11:06:06 +09:00]] 版) [12] [CITE@en[RE: Updating the IRI spec to include "web addresses"]] ([[Larry Masinter]] 著, [TIME[2009-06-01 11:06:06 +09:00]] 版) [13] [CITE@en[Updating the IRI spec to include "web addresses"]] ([[Larry Masinter]] 著, [TIME[2009-06-01 02:12:14 +09:00]] 版) [14] [CITE@en[Re: A new RFC for Web Addresses/Hypertext References: Background wrt LEIRIs]] ([[Martin J. Dürst]] 著, [TIME[2009-05-01 16:19:21 +09:00]] 版) [15] URL5 が >>14 のわけのわからないのに巻き込まれたのは不幸だ・・・。 [16] [CITE[IRC logs: freenode / #whatwg / 20090821]] ([TIME[2009-10-12 19:18:16 +09:00]] 版) [17] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-10-21 23:37:19 +09:00]] 版) [18] [CITE[IRC logs: freenode / #whatwg / 20090921]] ([TIME[2009-11-08 13:49:14 +09:00]] 版) [19] [CITE@en[HTML CHANGE PROPOSAL; change definition of URL to normative reference to IRIBIS]] ([[Larry Masinter]] 著, [TIME[2009-11-06 05:20:22 +09:00]] 版) [20] [CITE[URLs are tough — Anne’s Weblog]] ([TIME[2010-01-17 11:02:07 +09:00]] 版) [21] [CITE@en[HTML5 Revision Tracker]] ([TIME[2010-04-06 23:27:23 +09:00]] 版) [22] [CITE@en[HTML5 Revision Tracker]] ([TIME[2010-04-12 19:29:29 +09:00]] 版) [23] [CITE@en[abarth's url-spec at master - GitHub]] ([TIME[2010-07-24 13:00:56 +09:00]] 版) [24] [CITE['''['''whatwg''']''' '''['''URL''']''' Starting work on a URL spec]] ([TIME[2010-07-25 22:00:13 +09:00]] 版) [25] [CITE['''['''whatwg''']''' '''['''URL''']''' Starting work on a URL spec]] ([TIME[2010-07-25 22:00:13 +09:00]] 版) [26] [CITE[IRC logs: freenode / #whatwg / 20100723]] ([TIME[2010-08-10 23:46:04 +09:00]] 版) [27] [CITE[IRC logs: freenode / #whatwg / 20100810]] ([TIME[2010-08-15 11:23:35 +09:00]] 版) [28] [CITE[IRC logs: freenode / #whatwg / 20100930]] ( ([TIME[2010-10-11 01:27:16 +09:00]] 版)) [29] [CITE@en[draft-abarth-url - How Browsers Process URLs]] ( ([TIME[2010-11-09 18:34:19 +09:00]] 版)) [30] [CITE[RecommendationsForBrowserDevelopers - curlies - Project Hosting on Google Code]] ( ([TIME[2010-11-19 21:30:30 +09:00]] 版)) [31] [CITE[IRC logs: freenode / #whatwg / 20101109]] ( ([TIME[2010-11-18 23:22:34 +09:00]] 版)) [40] [CITE[URI Desk Calculator]] ( ([TIME[2009-10-20 09:39:15 +09:00]] 版)) [41] [CITE@en[HTML5 Revision Tracker]] ([TIME[2010-04-04 17:37:58 +09:00]] 版) [42] [CITE[IRC logs: freenode / #whatwg / 20100427]] ([TIME[2010-05-16 19:00:37 +09:00]] 版) [43] [CITE[/trunk/LayoutTests/fast/url – WebKit]] ([TIME[2010-07-24 13:01:15 +09:00]] 版) [44] [CITE[mozilla-central mozilla/netwerk/test/unit/test_standardurl.js]] ([TIME[2008-12-16 05:10:49 +09:00]] 版) [45] [CITE[url_canon_unittest.cc - google-url - Project Hosting on Google Code]] ([TIME[2010-07-24 13:03:57 +09:00]] 版) [46] [CITE[google-url - Project Hosting on Google Code]] ([TIME[2010-07-24 13:04:25 +09:00]] 版) [47] [CITE[UriTesting - ESW Wiki]] ([TIME[2010-06-29 00:30:28 +09:00]] 版) [48] [CITE[Developer's Guide (v2) - Google Safe Browsing API - Google Code]] ([TIME[2010-07-24 13:17:10 +09:00]] 版) [58] [CITE@en[Re: URL parsing]] ( ([[Jonas Sicking]] 著, [TIME[2010-04-29 02:31:10 +09:00]] 版)) [59] [CITE@en[URL parsing]] ( ([[Adam Barth]] 著, [TIME[2010-04-23 07:03:31 +09:00]] 版)) [60] [CITE@en[Web Applications 1.0 r6007 8207]] ( ([TIME[2011-04-15 07:17:00 +09:00]] 版)) [61] [CITE@en[Web addresses in HTML 5]] ( ([TIME[2009-06-15 23:24:21 +09:00]] 版)) [62] [CITE[Bug 8207 – Change definition of URL to normative reference to IRIBIS]] ( ([TIME[2011-04-15 07:41:47 +09:00]] 版)) [63] [CITE@en[Re: Working Group Decision on ISSUE-56 urls-webarch (correction)]] ( ([[Sam Ruby]] 著, [TIME[2011-03-20 00:37:08 +09:00]] 版)) [64] [CITE[IRC logs: freenode / #whatwg / 20110414]] ( ([TIME[2011-04-16 20:30:22 +09:00]] 版)) [65] [CITE[IRC logs: freenode / #whatwg / 20110414]] ( ([TIME[2011-04-16 20:30:22 +09:00]] 版)) [66] [CITE@en[design team notes]] ( ([[Peter Saint-Andre]] 著, [TIME[2011-04-22 00:35:10 +09:00]] 版)) [67] [CITE[IriWorkGoals – App Area Wiki]] ( ([TIME[2011-04-27 23:07:36 +09:00]] 版)) [68] [CITE[IRC logs: freenode / #whatwg / 20110422]] ( ([TIME[2011-04-27 09:06:30 +09:00]] 版)) [69] [CITE[IRC logs: freenode / #whatwg / 20110428]] ( ([TIME[2011-05-01 11:58:23 +09:00]] 版)) [70] [CITE[DRAFT IRI Rewrite]] ( ([TIME[2011-03-27 19:56:31 +09:00]] 版)) [71] [CITE@en[draft-abarth-url-01 - Parsing URLs for Fun and Profit]] ( ([TIME[2011-04-24 16:43:30 +09:00]] 版)) [73] [CITE@en[draft-weber-iri-guidelines-01 - Guidelines for Implementers of Internationalized Resource Identifiers (IRIs)]] ( ([TIME[2011-07-12 22:58:40 +09:00]] 版)) [74] [CITE[IRC logs: freenode / #whatwg / 20110726]] ( ([TIME[2011-08-07 10:33:25 +09:00]] 版)) [75] [CITE@en[Web::URL::Canonicalize - Perl URL Canonicalizer]] ( ([TIME[2011-09-03 12:48:29 +09:00]] 版)) [76] [CITE@en[Web Applications 1.0 r6728 Defer to the origin spec for URL origin.]] ( ([TIME[2011-10-22 07:20:00 +09:00]] 版)) [77] [CITE[IRC logs: freenode / #whatwg / 20111022]] ( ([TIME[2011-10-23 18:08:47 +09:00]] 版)) [78] [CITE[IRC logs: freenode / #whatwg / 20111104]] ( ([TIME[2011-11-06 10:49:24 +09:00]] 版)) [79] [CITE@en[Web Applications 1.0 r6842 Remove an attempt to cross-reference a term that isn't explicitly defined.Affected topics: WebSocket API]] ( ([TIME[2011-12-06 08:38:00 +09:00]] 版)) [80] [CITE[IRC logs: freenode / #whatwg / 20120103]] ( ([TIME[2012-01-05 08:23:04 +09:00]] 版)) [81] [CITE[IRC logs: freenode / #whatwg / 20120104]] ( ([TIME[2012-01-05 08:30:55 +09:00]] 版)) [82] [CITE[Bug 71968 – Implement URL API]] ( ([TIME[2012-01-07 12:33:04 +09:00]] 版)) [83] [CITE[IRC logs: freenode / #whatwg / 20120106]] ( ([TIME[2012-01-07 13:12:52 +09:00]] 版)) [84] [CITE[IRC logs: freenode / #whatwg / 20120110]] ( ([TIME[2012-01-12 01:45:17 +09:00]] 版)) [85] [CITE[IRC logs: freenode / #whatwg / 20120130]] ( ([TIME[2012-01-31 23:45:12 +09:00]] 版)) [86] [CITE[IRC logs: freenode / #whatwg / 20120406]] ( ([TIME[2012-04-14 23:26:06 +09:00]] 版)) [87] [CITE[IRC logs: freenode / #whatwg / 20120410]] ( ([TIME[2012-04-15 14:54:25 +09:00]] 版)) [88] [CITE[IRC logs: freenode / #whatwg / 20120515]] ( ([TIME[2012-05-23 23:29:33 +09:00]] 版)) [89] [CITE@en-US[URL]] ( ([TIME[2012-05-25 01:34:15 +09:00]] 版)) [90] [CITE@en[URL - WHATWG Wiki]] ( ([TIME[2012-06-21 23:48:56 +09:00]] 版)) [91] [CITE[IRC logs: freenode / #whatwg / 20120612]] ( ([TIME[2012-06-30 18:04:56 +09:00]] 版)) [92] [CITE[IRC logs: freenode / #whatwg / 20120613]] ( ([TIME[2012-06-30 19:52:04 +09:00]] 版)) [93] [CITE[IRC logs: freenode / #whatwg / 20120615]] ( ([TIME[2012-07-01 21:45:31 +09:00]] 版)) [94] [CITE@en[URLs]] ( ([[Anne van Kesteren]] 著, [TIME[2012-06-15 18:30:45 +09:00]] 版)) [95] [CITE[IRC logs: freenode / #whatwg / 20120724]] ( ([TIME[2012-07-25 21:32:07 +09:00]] 版)) [96] [CITE[URL Standard]] ( ([TIME[2012-09-13 19:00:01 +09:00]] 版)) [97] [CITE@en-US[URL Standard]] ( ([TIME[2012-09-21 23:59:04 +09:00]] 版)) [98] [CITE[''''''[''''''whatwg'''''']'''''' New URL Standard]] ( ([TIME[2012-09-22 00:16:03 +09:00]] 版)) [99] [CITE[IRC logs: freenode / #whatwg / 20120925]] ( ([TIME[2012-09-29 18:41:27 +09:00]] 版)) [100] [CITE[IRC logs: freenode / #whatwg / 20120926]] ( ([TIME[2012-10-02 21:29:21 +09:00]] 版)) [101] [CITE[annevk/url]] ( ([TIME[2012-10-22 23:35:48 +09:00]] 版)) [102] [CITE@en[RE: getting your tests into browser test framework]] ( ([[Larry Masinter]] 著, [TIME[2012-11-01 13:43:21 +09:00]] 版)) [103] [CITE@en[RE: IRI session / slides]] ( ([[Larry Masinter]] 著, [TIME[2012-11-01 20:19:56 +09:00]] 版)) [104] [CITE[IRC logs: freenode / #whatwg / 20121015]] ( ([TIME[2012-10-27 16:12:54 +09:00]] 版)) [105] [CITE@en[Call for Editor: URL spec]] ( ([[Arthur Barstow]] 著, [TIME[2012-11-05 20:46:23 +09:00]] 版)) [106] [CITE@en[URL work in HTML 5]] ( ([[Larry Masinter]] 著, [TIME[2012-10-14 04:55:45 +09:00]] 版)) [107] [CITE[IRC logs: freenode / #whatwg / 20121023]] ( ([TIME[2012-11-18 21:06:34 +09:00]] 版)) [108] [CITE@en[Re: ''''''[''''''whatwg'''''']'''''' New URL Standard from Anne van Kesteren on 2012-09-24 (public-whatwg-archive@w3.org from September 2012)]] ( ([[Anne van Kesteren]] 著, [TIME[2012-10-23 17:36:14 +09:00]] 版)) [109] [CITE[''''''[''''''whatwg'''''']'''''' URL: query string]] ( ([TIME[2012-11-22 05:07:43 +09:00]] 版)) [110] [CITE@en[obsoleting 3986 -- what would it look like?]] ( ([[Larry Masinter]] 著, [TIME[2012-11-02 16:24:31 +09:00]] 版)) [111] [CITE[''''''[''''''whatwg'''''']'''''' URL testing]] ( ([TIME[2012-11-24 08:04:14 +09:00]] 版)) [112] [CITE[run url tests]] ( ([TIME[2012-11-24 04:11:13 +09:00]] 版)) [113] [CITE[cweb/url-testing]] ( ([TIME[2012-11-24 12:43:53 +09:00]] 版)) [114] [CITE[IRC logs: freenode / #whatwg / 20121107]] ( ([TIME[2012-11-25 12:45:34 +09:00]] 版))