Что такое URL
Что такое URL
URL (Uniform Resource Locator) — это строка символов, которая идентифицирует ресурс в Интернете. Ресурсом может быть все, к чему можно получить доступ в Интернете, например, веб-страница, изображение, видео, документ и т. д.
URL состоит из двух частей: схемы и пути. Схема определяет протокол или метод доступа к ресурсу, например http
, https
, ftp
, mailto
и т. д. Путь определяет местоположение или адрес ресурса на сервере или в сети. Например, вот URL-адрес, состоящий из двух частей
https://www.example.com/index.html
--^-- ---------^----------------
схема путь
Анатомия URL
URL может иметь несколько компонентов, которые предоставляют дополнительную информацию о ресурсе или способе доступа к нему. Эти компоненты разделяются специальными символами, называемыми разделителями. Основная структура URL-адреса такова:
схема://[пользователь:пароль@]хост[:порт]/путь[?запрос][#фрагмент]
- За схемой следует двоеточие
:
и две косые черты//
. - Пользователь и пароль необязательны и используются для аутентификации. Они разделяются двоеточием
:
и сопровождаются знаком@
. - Хост — это имя или IP-адрес сервера, или сети, где расположен ресурс. Он также может включать поддомен или доменное имя.
- Порт является необязательным и указывает номер порта на сервере, через который можно получить доступ к ресурсу. Перед ним ставится двоеточие.
- Путь — это последовательность каталогов и файлов, ведущих к ресурсу на сервере. Они разделяются косой чертой
/
. - Запрос является необязательным и содержит дополнительные параметры или данные, которые отправляются на сервер вместе с запросом на ресурс. Ему предшествует вопросительный знак
?
. - Фрагмент является необязательным и идентифицирует определённую часть или раздел ресурса. Ему предшествует знак хэша
#
.
Вот пример 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 имеет вид
/home
, отображается домашняя страница. - Если URL имеет вид
/blog/post?title=whats-in-a-url
, обслуживается запись в блоге с заголовкомЧто в URL?
. - Если URL-адрес имеет вид
/about
, откроется страницаО сайте
. - Если URL не соответствует ни одному из этих правил, выдаётся страница
404
(не найдено).
Маршрутизация URL также может включать извлечение параметров из URL и передачу их ресурсу. Например, в URL /blog/post?title=whats-in-a-url
параметр title
имеет значение whats-in-a-url
. Это значение может быть использовано ресурсом статьи блога для отображения соответствующего содержимого.
Маршрутизация URL может быть статической или динамической. Статическая маршрутизация означает, что правила фиксированы и не меняются в зависимости от запроса. Динамическая маршрутизация означает, что правила гибкие и могут меняться в зависимости от запроса. Например, правило динамической маршрутизации может быть следующим:
- Если URL-адрес имеет вид
/blog/post/<slug>
, обслуживается запись блога со словом<slug>
. - Если записи в блоге с таким названием не существует, откроется страница
404
В данном случае <slug>
— это переменная, которая может принимать любое значение. Например, /blog/post/whats-in-a-url
и /blog/post/how-to-design-urls
— оба допустимых URL, которые соответствуют этому правилу.
Лучшие практики разработки URL
Дизайн URL — это важный аспект веб-разработки, который влияет на удобство использования, поисковую оптимизацию (SEO) и удобство обслуживания. Вот несколько лучших практик для создания чётких, последовательных и содержательных URL-адресов:
Используйте описательные слова вместо цифр или кодов. Например,
/blog/post/whats-in-a-url
лучше, чем/blog/post/12345
.Используйте дефисы (
-
) вместо знаков подчёркивания (_
) или пробелов (%20
) для разделения слов. Например,/blog/post/whats-in-a-url
лучше, чем/blog/post/whats_in_a_url
или/blog/post/whats%20in%20a%20url
.Используйте строчные буквы вместо прописных. Например,
/blog/post/whats-in-a-url
лучше, чем/blog/post/Whats-In-A-URL
.Используйте короткие и простые URL вместо длинных и сложных. Например,
/blog/post/whats-in-a-url
лучше, чем/blog/category/web-development/subcategory/url-design/article/whats-in-a-url
.Избегайте использования лишних слов или символов в URL. Например,
/blog/post/whats-in-a-url
лучше, чем/blog/posts/view-post.php?title=whats-in-a-url
.Используйте в URL ключевые слова, которые относятся к вашему контенту и целевой аудитории. Например,
/blog/post/whats-in-a-url
лучше, чем/blog/post/random-stuff
.Будьте последовательны в структуре URL и соглашениях на всем сайте.
Избегайте изменения URL-адресов после их публикации. Если вам необходимо изменить URL, используйте редирект для перенаправления запросов к старому URL на новый URL.
Используйте канонические URL-адреса: Канонические URL — это предпочтительные версии ваших страниц, которые поисковые системы должны индексировать и отображать. Вы должны использовать канонические теги или перенаправления, чтобы избежать проблем с дублированием контента, вызванных различиями в URL-адресах. Например, если у вас есть несколько URL, указывающих на одну и ту же страницу, например,
https://www.example.com/blog/whats-in-a-url
иhttps://example.com/whats-in-a-url
, вам следует указать один из них в качестве канонического URL и перенаправлять или ссылаться на него с остальных.
Заключение
В этой статье мы узнали об URL-адресах и о том, как они используются для идентификации и поиска ресурсов в Интернете. Мы также узнали о различных компонентах URL и о том, как использовать кодировку URL для включения специальных символов в URL. Мы также узнали о маршрутизации URL и некоторых передовых методах разработки URL. Надеюсь, вы нашли эту статью полезной. Увидимся в следующий раз!