ユニフォームリソース ロケータ( URL ) は、一般的にウェブ アドレスとして知られています[ 6 ]、ワールド ワイド ウェブ上のリソースへの参照です。URL は、コンピュータ ネットワーク上のリソースの場所と、それを取得するメカニズムを指定します。URL は、 Uniform Resource Identifier (URI)の特定のタイプです[ 7 ] [ 1 ]が、多くの人がこの 2 つの用語を互換的に使用しています[ 8 ] [ a ] 。URLは、ウェブ ページ( HTTP / HTTPS ) を参照するために最も一般的に使用されますが、ファイル転送 ( FTP )、電子メール ( mailto )、データベース アクセス ( JDBC )、およびその他の多くのアプリケーションにも使用されます。
ほとんどのウェブブラウザは、ウェブページのURLをページ上部のアドレスバーに表示します。ウェブページのURLの例として、https://www.example.com/index.htmlプロトコルhttps、ホスト名www.example.com、ファイル名を示しますindex.html。
Uniform Resource Locator は、World Wide Web の発明者であるTim Berners-LeeとInternet Engineering Task Force ( IETF)の URI ワーキンググループによって 1994 年にRFC 1738 [ 10 ]で定義されました。これは、1992 年にIETF Living Documents のbirds of a featherセッションで始まったコラボレーションの成果です。[ 11 ] [ 12 ]
この形式は、既存のドメイン名システム(1985年に作成)とファイルパス構文を組み合わせたもので、スラッシュを使用してディレクトリ名とファイル名を区切っています。サーバー名を完全なファイルパスの接頭辞として、二重スラッシュ(//)を付けて付けるという慣習は既に存在していました。[ 13 ]
バーナーズ=リーは後に、 URI内のドメイン名の各部分を区切るためにドットを使用したことを後悔し、全体を通してスラッシュを使用すればよかったと述べ、[ 13 ]また、URI の最初のコンポーネントの後にコロンがあるため、ドメイン名の前の 2 つのスラッシュは不要だったとも述べた。[ 14 ]
バーナーズ=リーを含む初期のワールドワイドウェブの協力者たちは、当初、ユニバーサル文書識別子(UDI)の使用を提案した。HTML 仕様の初期(1993年)の草案[ 15 ]では、「ユニバーサル」リソースロケーターに言及していた。これは1994年6月[ 16 ]から1994年10月[ 17 ]の間に削除された。バーナーズ=リーは 著書『Weaving the Web』の中で、後に変更された「uniform」という単語よりも、当初の「universal」という単語を拡張語に含めることを好んだことを強調し、変更につながった論争について簡単に説明している。
すべてのHTTP URLは、汎用URIの構文に準拠しています。URIの汎用構文は、左から右へ重要度の高い順に階層的に構成された5つのコンポーネントから成ります。 [ 1 ]: §3
URI =スキーム":" [ "//"オーソリティ]パス[ "?"クエリ] [ "#"フラグメント]コンポーネントは、関連付けられた区切り文字があり、その区切り文字がURIに現れない場合、未定義となります。スキームコンポーネントとパスコンポーネントは常に定義されます。 [ 1 ]: §5.2.1コンポーネントは、文字がない場合、空となります。スキームコンポーネントは常に空ではありません。[ 1 ]: §3
権限コンポーネントは、以下のサブコンポーネントで構成されています。
権限= [ userinfo "@" ]ホスト[ ":"ポート]これは構文図では次のように表されます。
URIは以下で構成されます。
:)が続きます。スキームは、文字で始まり、文字、数字、プラス(+)、ピリオド(.)、またはハイフン(-)の任意の組み合わせが続く文字のシーケンスで構成されます。スキームは大文字と小文字を区別しませんが、正規形式は小文字であり、スキームを指定する文書は小文字で記述する必要があります。よく使われるスキームの例としてはhttp、https、ftp、mailto、file、dataなど、インターネット割り当て番号機関(IANA)ircに登録する必要がありますが、実際には登録されていないスキームも使用されています。 [ 18 ]//)で始まり、以下から構成される。 @で構成され、の前にはコロン () が付きます。userinfo サブコンポーネントでこの形式を使用することは、セキュリティ上の理由から非推奨です。アプリケーションは、userinfo サブコンポーネント内で最初に見つかったコロン () 以降のデータを、コロンの後のデータが空文字列 (パスワードがないことを示す) でない限り、平文としてレンダリングしてはなりません。:username:password:[]。 [ 1 ]: §3.2.2 [ b ]:)で始まり、10進数で構成されます。/。URI に対しては常にパスが定義されますが、定義されたパスは空(長さゼロ)の場合もあります。セグメントも空の場合があり、その場合は//パスコンポーネントに連続する 2 つのスラッシュ( )が含まれます。パスコンポーネントはファイルシステムパスが、必ずしもファイルシステムパスとの関連を意味するわけではありません。オーソリティコンポーネントが定義されている場合、パスコンポーネントは空であるか、スラッシュ(/)で始まる必要があります。オーソリティコンポーネントが未定義の場合、パスは空のセグメント(つまり、2 つのスラッシュ(//))で始めることはできません。なぜなら、後続の文字がオーソリティコンポーネントとして解釈されるからです。 [ 20 ]: §3.3"http://www.example.com/questions/3456/my-document""/questions"の最初の部分(実行可能モジュールまたはプログラム)であり、はpathinfoという名前のパスの 2 番目の部分で、要求されたドキュメントを選択するために、 という名前の実行可能モジュールまたはプログラムに渡されます。"/3456/my-document""/questions"?) で始まり、クエリ文字列区切り文字で区切られた属性と値のペアのシーケンスであることがほとんどです。#。フラグメントには、URIの残りの部分で識別される記事のセクション見出しなど、二次リソースへの指示を提供するフラグメント識別子HTMLドキュメントの場合、フラグメントは多くの場合、id属性、Webブラウザはこの要素をスクロールして表示します。ウェブブラウザは通常、指定されたホスト(デフォルトではポート番号80)に対してHTTPリクエストを実行することでURLを参照します。このスキームを使用するURLでは、リクエストとレスポンスはウェブサイトへの安全な接続を介して行われる必要があります。https
インターネットユーザーは世界中に分散しており、さまざまな言語とアルファベットを使用しているため、自分の地域のアルファベットで URL を作成できることを期待しています。国際化リソース識別子(IRI) は、 Unicode文字を含む URL の形式です。すべての最新のブラウザは IRI をサポートしています。異なるアルファベットに対して特別な処理が必要な URL の部分は、ドメイン名とパスです。[ 23 ] [ 24 ]
IRI のドメイン名は、国際化ドメイン名(IDN) として知られています。Web およびインターネット ソフトウェアは、ドメイン名をドメイン ネーム システムで使用可能なピュニコードに自動的に変換します。たとえば、中国語の URLは になります。 は、文字が元々ASCII ではなかったことを示します。[ 25 ]http://例子.卷筒纸http://xn--fsqu00a.xn--3lr804guic/xn--
URL パス名は、ユーザーがローカルの文字体系で指定することもできます。エンコードされていない場合は、UTF-8に変換され、基本 URL 文字セットに含まれない文字は、パーセントエンコーディングを使用して16 進数としてエスケープされます。たとえば、日本語の URLは になります。ターゲット コンピュータはアドレスをデコードしてページを表示します。[ 23 ] http://example.com/引き割り.htmlhttp://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html
プロトコル相対リンク (PRL) は、プロトコル相対 URL (PRURL) とも呼ばれ、プロトコルが指定されていない URL です。たとえば、//example.com現在のページのプロトコル (通常は HTTP または HTTPS) が使用されます。[ 26 ] [ 27 ]
http://www.example.comは URL ですが、はそうではwww.example.comありません。 [ 9 ].0ドット10進表記の一部を省略したり、生の整数IPアドレスを使用したりすることができます。 [ 19 ]