URL エンコード/デコード


URL の紹介

URL とは

URLUniform Resource Locator(統一リソースロケーター)の略で、インターネット上のリソースの場所を識別するために使用されます。

URL の形式は scheme:[//authority]path[?query][#fragment] で、authority = [userinfo@]host[:port] です。

  1. scheme - プロトコルを指し、例えば http や ftp など。必須です
  2. userinfo - 認証用のユーザー情報。username:password 形式で、省略可
  3. host - ホスト。ドメイン名または IP。必須です
  4. port - ポート番号。省略可で、デフォルトはプロトコルのデフォルトポートを使用
  5. path - パス。主にホストのディレクトリやファイルアドレスを表します。省略可
  6. query - クエリパラメータ。省略可
  7. fragment - フラグメント。ネットワークリソースの一部を指します。省略可

単純な URL の例:https://www.codeeeee.com は schemehost を使用し、https のデフォルトポート 443 を使用しています

URI とは

URI は Uniform Resource Identifier(統一リソース識別子)の略で、インターネット上のリソースの名前を識別するために使用されます。URL と URI の形式は同じで、概念的には混同しやすいですが、時々同一視されます。URL と URI の違いは、前者がリソースの場所を表し、後者がリソースの名前を表すことです。URL は URI の一種です。

URL をエンコードする理由

URL は ASCII コードの文字のみを含むことができるため、文字セット外の文字が出現した場合はエンコードする必要があります。また、URL にはいくつかの予約文字があり、例えば :/& など、これらの文字が出現する場合もエンコードが必要です。これにより URL の解析が混乱するのを防ぎます。

URL エンコードルール

URL エンコード時、文字は対応するパーセントエンコード(%)で表示されます。具体的なエンコードルールはこちらの URL エンコードの紹介を参照してください

Javascript では、encodeURIComponentdecodeURIComponent を使用して URL のエンコードとデコードを行います。