Кодирование и декодирование URL


Введение в URL

Что такое URL

URL - это аббревиатура от Uniform 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, используются только scheme и host, порт по умолчанию для https - 443

Что такое URI

URI - это аббревиатура от Uniform Resource Identifier (Унифицированный идентификатор ресурса), используется для обозначения имени ресурса в интернете. Формат и концепция URL и URI схожи, иногда их используют как взаимозаменяемые термины. Отличие в том, что URL указывает на местоположение ресурса, а URI - на его имя. URL является подтипом URI.

Почему URL нужно кодировать

URL может содержать только символы ASCII, поэтому при наличии символов за пределами этого набора необходимо их закодировать. Кроме того, в URL есть зарезервированные символы, такие как :, /, &, которые также нужно кодировать, чтобы избежать путаницы в интерпретации URL.

Правила кодирования URL

При кодировании URL символы представляются в виде кодов процентного кодирования (%). Подробные правила кодирования URL можно найти здесь

В JavaScript для кодирования и декодирования URL можно использовать encodeURIComponent и decodeURIComponent.