Что такое 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. Надеюсь, вы нашли эту статью полезной. Увидимся в следующий раз!