Что такое URL

Источник: «What's in a URL?»
URL-адреса встречаются повсюду. Мы используем их для доступа к веб-сайтам, отправки электронной почты, загрузки файлов и многого другого. Но что такое URL и как он работает? В этой статье мы рассмотрим анатомию URL, различные типы URL, способы кодирования и декодирования URL, разработку и отладку URL, а также некоторые советы по безопасности при использовании URL.

Что такое URL

URL (Uniform Resource Locator) — это строка символов, которая идентифицирует ресурс в Интернете. Ресурсом может быть все, к чему можно получить доступ в Интернете, например, веб-страница, изображение, видео, документ и т. д.

URL состоит из двух частей: схемы и пути. Схема определяет протокол или метод доступа к ресурсу, например http, https, ftp, mailto и т. д. Путь определяет местоположение или адрес ресурса на сервере или в сети. Например, вот URL-адрес, состоящий из двух частей

https://www.example.com/index.html
--^-- ---------^----------------
схема путь

Анатомия URL

URL может иметь несколько компонентов, которые предоставляют дополнительную информацию о ресурсе или способе доступа к нему. Эти компоненты разделяются специальными символами, называемыми разделителями. Основная структура URL-адреса такова:

схема://[пользователь:пароль@]хост[:порт]/путь[?запрос][#фрагмент]

Вот пример URL со всеми этими компонентами:

https://www.example.com:8080/blog/post.php?id=123&lang=en#comments

- схема: https
- пользователь: нет
- пароль: нет
- хост: www.example.com
- порт: 8080
- путь: /blog/post.php
- запрос: id=123amp;lang=en
- фрагмент: comments

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

Иногда нам нужно включить в URL специальные символы или пробелы, которые не разрешены или имеют другое значение в синтаксисе URL. Например, мы хотим найти в Google программирование на C#, но не можем использовать в запросе знак #, поскольку он используется в качестве разделителя фрагментов. Чтобы решить эту проблему, мы можем использовать кодировку URL или процентную кодировку. Это процесс преобразования этих символов в формат, который можно безопасно передавать в URL. Формат состоит из знака процента %, за которым следуют две шестнадцатеричные цифры, представляющие ASCII-код символа. Например, знак # кодируется как %23, а пробел — как %20. Таким образом, наш поисковый запрос будет выглядеть следующим образом:

https://www.google.com/search?q=C%23+programming

Кодирование URL также может быть использовано для кодирования символов, не являющихся символами ASCII, таких, как китайские или арабские символы, в формат UTF-8. Например, китайское слово привет 你好 кодируется как %E4%BD%A0%E5%A5%BD.

Относительные и абсолютные URL

Абсолютный URL — это полный URL, в котором указаны все компоненты расположения ресурса, такие как схема, хост, порт, путь, запрос и фрагмент. Например:

https://www.example.com/blog/post.php?id=123&lang=en#comments

Относительный URL — это неполный URL, в котором отсутствуют некоторые или все эти компоненты, а их разрешение зависит от контекста или базового URL. Например:

/blog/post.php?id=123&lang=en#comments

Этот относительный URL может быть преобразован в абсолютный URL, если мы знаем, что он ссылается на тот же хост и схему, что и базовый URL:

https://www.example.com/blog/post.php?id=123&lang=en#comments

Это полезно, когда мы хотим сослаться на ресурс на том же сайте или сервере. Например, мы можем использовать относительный URL для ссылки на другую страницу на том же сайте:

<a href="/about">About</a>

Маршрутизация URL

Маршрутизация URL — это процесс определения того, какой ресурс следует обслужить на основе URL-адреса запроса. Различные веб-серверы и платформы имеют разные способы реализации маршрутизации URL, но основная идея заключается в сопоставлении URL с предопределённым шаблоном или правилом, определяющим, какой ресурс следует обслужить. Например, простым правилом может быть следующее:

Маршрутизация URL также может включать извлечение параметров из URL и передачу их ресурсу. Например, в URL /blog/post?title=whats-in-a-url параметр title имеет значение whats-in-a-url. Это значение может быть использовано ресурсом статьи блога для отображения соответствующего содержимого.

Маршрутизация URL может быть статической или динамической. Статическая маршрутизация означает, что правила фиксированы и не меняются в зависимости от запроса. Динамическая маршрутизация означает, что правила гибкие и могут меняться в зависимости от запроса. Например, правило динамической маршрутизации может быть следующим:

В данном случае <slug> — это переменная, которая может принимать любое значение. Например, /blog/post/whats-in-a-url и /blog/post/how-to-design-urls — оба допустимых URL, которые соответствуют этому правилу.

Лучшие практики разработки URL

Дизайн URL — это важный аспект веб-разработки, который влияет на удобство использования, поисковую оптимизацию (SEO) и удобство обслуживания. Вот несколько лучших практик для создания чётких, последовательных и содержательных URL-адресов:

Заключение

В этой статье мы узнали об URL-адресах и о том, как они используются для идентификации и поиска ресурсов в Интернете. Мы также узнали о различных компонентах URL и о том, как использовать кодировку URL для включения специальных символов в URL. Мы также узнали о маршрутизации URL и некоторых передовых методах разработки URL. Надеюсь, вы нашли эту статью полезной. Увидимся в следующий раз!

Дополнительные материалы

Предыдущая Статья

Vim: Вставить совпавший шаблон

Следующая Статья

Vim: Как изменить регистр при замене