URL

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

URL
ユニフォームリソースロケータ
略語URL
状態公開済み
初版1994 ; 28年前 (1994
最新バージョン生活水準
2022
組織インターネットエンジニアリングタスクフォース(IETF)
委員会Webハイパーテキストアプリケーションテクノロジーワーキンググループ(WHATWG)
シリーズコメントの要求(RFC)
編集者アン・ヴァン・ケステレン
著者ティムバーナーズリー
基本基準
  • RFC3986 _ – URI(Uniform Resource Identifier):一般的な構文。
  • RFC4248 _ – telnetURIスキーム。
  • RFC4266 _ – gopherURIスキーム。
  • RFC6068 _ –「mailto」URIスキーム。
  • RFC6196 _ –メールサーバーの移動:URIスキームからHistoricへ。
  • RFC6270 _ –'tn3270'URIスキーム。
関連規格URIURN
ドメインワールドワイドウェブ
ライセンスCC BY 4.0
Webサイトurl .spec .whatwg .org

通称Webアドレスと呼ばれるUniformResource LocatorURL[1]は、コンピュータネットワーク上の場所とそれを取得するためのメカニズムを指定するWebリソースへの参照です。URLは、特定のタイプのURI(Uniform Resource Identifier ) [2] [3]ですが、多くの人が2つの用語を同じ意味で使用しています。[4] [a] URLは、最も一般的にWebページhttp)を参照するために使用されますが、ファイル転送(ftp)、電子メール(mailto)、データベースアクセス(JDBC )にも使用されます。)、および他の多くのアプリケーション。

ほとんどのWebブラウザは、ページの上のWebページのURLをアドレスバーに表示します。一般的なURLは、プロトコル( )、ホスト名)、およびファイル名( )http://www.example.com/index.htmlを示す形式を持つことができますhttpwww.example.comindex.html

歴史

ユニフォームリソースロケーターの簡単な例

ユニフォームリソースロケーターは、1994年にワールドワイドウェブの発明者であるティムバーナーズリーとインターネットエンジニアリングタスクフォース(IETF)のURIワーキンググループ[7]によって、 RFC1738で定義されました。 IETF LivingDocuments1992年の羽のセッションの鳥 [ 8] [9] 

この形式は、既存のドメイン名システム(1985年に作成)とファイルパス構文を組み合わせたもので、ディレクトリファイル名を区切るためにスラッシュが使用されます。完全なファイルパスの前にサーバー名をプレフィックスとして付け、その前に二重スラッシュ()を付けることができる規則は、すでに存在していました[10]//

Berners-Leeは後に、URI内のドメイン名の部分を区切るためにドットを使用したことを後悔していることを表明しまし。ドメイン名の前のスラッシュは不要でした。[11]

HTML仕様の初期(1993年)のドラフト[12]は、「ユニバーサル」リソースロケーターに言及していました。これは、1994年6月(RFC  1630)から1994年10月(draft-ietf-uri-url-08.txt)の間に削除されました。[13]

構文

すべてのHTTPURLは、汎用URIの構文に準拠しています。URIの一般的な構文は、5つのコンポーネントの階層シーケンスで構成されています[14]

URI =スキーム ":" ["//"権限]パス["?" クエリ] ["#"フラグメント]

ここで、権限コンポーネントは3つのサブコンポーネントに分割されます

Authority = [userinfo "@"] host [":" port]

これは、構文図では次のように表されます。

URI構文図

URIは次のもので構成されます。

  • 空でないスキームコンポーネントの後にコロン(:)が続き、文字で始まり、文字、数字、プラス(+)、ピリオド(.)、またはハイフン(-)の任意の組み合わせが続く文字のシーケンスで構成されます。スキームでは大文字と小文字は区別されませんが、標準形は小文字であり、スキームを指定するドキュメントでは小文字を使用する必要があります。一般的例には、、、、、、、httpおよび含まます。URIスキームは、Internet Assigned Numbers Authority(IANA)に登録する必要がありますが、実際には未登録のスキームが使用されます。[b]httpsftpmailtofiledatairc
  • オプション2つのスラッシュ(//が前に付いた権限コンポーネント。
    • オプションuserinfoサブコンポーネント。ユーザー名とオプションのパスワードの前にコロン(:)が続き、その後にアット@ます。userinfoサブコンポーネントでのフォーマットの使用は、username:passwordセキュリティ上の理由から非推奨です。:コロンの後のデータが空の文字列(パスワードがないことを示す)でない限り、アプリケーションは、userinfoサブコンポーネント内で見つかった最初のコロン()の後のデータをクリアテキストとしてレンダリングしないでください
    • A登録名(ホスト名を含むがこれに限定されない)またはIPアドレスのいずれかで構成されるホストサブコンポーネント。IPv4アドレスはドット付き10進表記である必要があり、IPv6アドレスは角かっこ()で囲む必要があります[][16] [c]
    • オプションコロン()が前に付いたポート:サブコンポーネント。
  • Aパス/コンポーネント。スラッシュ( )で区切られた一連のパスセグメントで構成され定義されたパスは空(長さがゼロ)の場合もありますが、パスは常にURIに対して定義されます。セグメントが空の場合もあり//、パスコンポーネントに2つの連続したスラッシュ()が含まれる場合があります。パスコンポーネントは、ファイルシステムパスに類似しているか、正確にマップされている場合がありが、必ずしもファイルシステムパス権限コンポーネントが存在する場合、パスコンポーネントは空であるか、スラッシュ(/)で始まる必要があります。//権限コンポーネントが存在しない場合、次の文字が権限コンポーネントとして解釈されるため、パスを空のセグメント、つまり2つのスラッシュ()で始めることはできません[18]
:慣例により、httpおよびhttps URIでは、パスの最後の部分に名前が付けられますpathinfoおよびそれはオプションです。これは、既存の物理リソース名(ファイル、内部モジュールプログラム、実行可能プログラムなど)を参照せず、論理部分(コマンド、修飾子部分など)を参照する0個以上のパスセグメントで構成されます。Webサーバーによって管理される実行可能モジュールまたはプログラムを識別するパスの最初の部分に個別に渡されこれは、動的コンテンツ(ドキュメントなど)を選択したり、要求に応じてコンテンツを調整したりするためによく使用されます(CGIやPATH_INFOなども参照)。
例:
URI:"http://www.example.com/questions/3456/my-document"
ここで、はパス"/questions"の最初の部分(実行可能モジュールまたはプログラム)であり、 pathinfoという名前のパスの2番目の部分であり、要求されたドキュメントを選択するために指定された実行可能モジュールまたはプログラムに渡されます。"/3456/my-document""/questions"
クエリ部分のないpathinfo部分を含むhttpまたはhttpsURIは、「クリーンURL 」と呼ばれることもあり、その最後の部分は「スラッグ」である可能性があります。
クエリ区切り文字
アンパサンド(& key1=value1&key2=value2
セミコロン(;[d] key1=value1;key2=value2
  • オプション非階層データクエリ文字列?を含む、疑問符()が前に付いたクエリコンポーネント。その構文は明確に定義されていませんが、慣例により、ほとんどの場合区切り文字れた属性と値のペア
  • オプションハッシュ )が前に付いたフラグメントコンポーネント#フラグメントには、URIの残りの部分で識別される記事のセクション見出しなど、セカンダリリソースへの方向を提供フラグメント識別子が含まれていプライマリリソースがHTMLドキュメントの場合、フラグメントは特定の要素のid属性であることが多く、Webブラウザはこの要素をスクロールして表示します。

Webブラウザーは通常、指定されたホスト(デフォルトではポート番号80)に対してHTTP要求を実行することにより、URLを逆参照します。スキームを使用するURLでは、Webサイトへの安全な接続を介して要求と応答を行う必要がありますhttps

国際化されたURL

インターネットユーザーは、さまざまな言語とアルファベットを使用して世界中に分散しており、独自のローカルアルファベットでURLを作成できることを期待しています。Internationalized Resource Identifier(IRI)は、Unicode文字を含むURLの形式です。最新のブラウザはすべてIRIをサポートしています。さまざまなアルファベットに対して特別な処理が必要なURLの部分は、ドメイン名とパスです。[20] [21]

IRIのドメイン名は、国際化ドメイン名(IDN)と呼ばれます。Webおよびインターネットソフトウェアは、ドメイン名をドメインネームシステムで使用可能なpunycodeに自動的に変換します。たとえば、中国語のURLhttp://例子.卷筒纸はになりhttp://xn--fsqu00a.xn--3lr804guic/ます。xn--は、文字が元々ASCIIではなかったことを示します[22]

URLパス名は、ローカルの書記体系でユーザーが指定することもできます。まだエンコードされていない場合は、UTF-8に変換され、基本URL文字セットの一部ではない文字はpercent-encodingを使用して16進数としてエスケープされます。たとえば、日本語のURLはになります。ターゲットコンピュータはアドレスをデコードし、ページを表示します。[20] http://example.com/引き割り.htmlhttp://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html

プロトコル相対URL

プロトコル相対リンク(PRL)は、プロトコル相対URL(PRURL)とも呼ばれ、プロトコルが指定されていないURLです。たとえば//example.com、現在のページのプロトコル(通常はHTTPまたはHTTPS)を使用します。[23] [24]

も参照してください

ノート

  1. ^ URLは、指定されたリソースにアクセスする手段を意味し、プロトコルまたはアクセスメカニズムによって示されますが、これはすべてのURIに当てはまるわけではありません。[5] [4]したがってhttp://www.example.com、はURLですが、www.example.comはありません。[6]
  2. ^ 新しいURIスキームを登録する手順は、1999年にRFC 2717によって最初に定義され、現在は2015年6月に公開されたRFC7595によって定義されています 。 [15] 
  3. ^ World Wide Web上のリソースに関連するURIの場合、一部のWebブラウザー.0では、ドット付き10進表記の一部を削除したり、生の整数IPアドレスを使用したりできます。[17]
  4. ^ 歴史的なRFC1866(RFC 2854で廃止、CGIの作成者が ';'をサポートすることを推奨しています。 に加えて '&'。[19] 

引用

  1. ^ W3C(2009)
  2. ^ 「URLの円記号と円記号」zzz.buzz 2018年9月19日取得
  3. ^ RFC 3986(2005)
  4. ^ ab 共同W3C / IETF URI計画利益団体(2002
  5. ^ RFC 2396(1998)
  6. ^ ミースラー、ダニエル。「URLとURIの違い」
  7. ^ W3C(1994)
  8. ^ IETF(1992)
  9. ^ Berners-Lee(1994)
  10. ^ a b Berners-Lee(2000)
  11. ^ BBCニュース(2009)
  12. ^ Berners-Lee、Tim ; コノリー、ダニエル「ダン」(1993年3月)。ハイパーテキストマークアップ言語(ドラフトRFCxxx)(テクニカルレポート)。p。28。
  13. ^ Berners-Lee、Tim ; マシンター、ラリー; マッカヒル、マークペリー(1994年10月)。ユニフォームリソースロケーター(URL)(テクニカルレポート)。Ang、CSで引用されています。マーティン、DC(1995年1月)。Constituent Component Interface ++(テクニカルレポート)。UCSFライブラリおよび知識管理センター。
  14. ^ RFC 3986、セクション3(2005)
  15. ^ IETF(2015)
  16. ^ RFC 3986(2005)、§3.2.2。
  17. ^ ローレンス(2014)
  18. ^ RFC 2396(1998)、§3.3。
  19. ^ RFC 1866(1995)、§8.2.1。
  20. ^ a b W3C(2008)
  21. ^ W3C(2014)
  22. ^ IANA(2003)
  23. ^ Glaser、JD(2013)。モバイルアプリの安全な開発:PHPとJavaScriptを使用して安全なモバイルアプリケーションを設計およびコーディングする方法CRCプレスp。193. ISBN 978-1-48220903-72015年10月12日取得
  24. ^ Schafer、Steven M.(2011)。HTML、XHTML、およびCSS聖書John Wiley&Sonsp。124. ISBN 978-1-11808130-32015年10月12日取得

参考文献

外部リンク