2.1 host
После того, как Тим Бернерс-Ли придумал всемирную паутину, HTML, HTTP и веб-серверы, он решил усложнить жизнь будущим веб-программистам и придумал ссылки, или URL. URL расшифровывается как Universal Resource Locator.
Типичная ссылка задается шаблоном:
protocol://host/path?query#anchor
Некоторые из частей могут отсутствовать, но protocol
и host
всегда должны быть указаны.
Protocol
задает имя протокола, по которому будут взаимодействовать клиент и сервер. Типичные названия протоколов: HTTP, HTTPS, FTP, SSH, …
Host
— это имя сервера в сети, к которому нужно отправить запрос. Изначально это был IP-адрес, но люди быстро придумали удобочитаемые имена (domain names), чтобы ничего не запоминать. Как будто запомнить пару цифр так сложно)
Изначально никакого query
не задумывалось. Path
задавал месторасположения HTML-файла, который сервер должен был отдать клиенту. Однако после того, как веб захватили аматоры, они быстро сообразили, что HTML-файлы можно динамически создавать на стороне сервера. Поэтому в URL добавили раздел query
, в котором серверу можно передать кучу полезной информации.
Ну и наконец anchor
— это просто специальная метка на HTML-странице, которая подсказывает браузеру, что страницу нужно не просто отобразить, но еще и проскролить ее до определенного места, то есть метки.
2.2 query & params
Расскажу еще немного про query
.
Часть ссылки под названием query
начинается сразу после знака вопроса и заканчивается знаком # (или концом ссылки). Информация в query представляет из себя набор параметров в таком виде:
name=value&name2=value2&nameN=valueN
URL не может содержать пробелов и еще кучу разных символов, поэтому все подозрительные символы экранируются. Скорее всего ты часто с таким сталкивался, когда копировал ссылку и кидал ее другу:
Символ | Кодировка | |
---|---|---|
1 | пробел | %20 |
2 | ! | %21 |
3 | # | %22 |
4 | $ | %24 |
5 | % | %25 |
6 | & | %26 |
7 | ‘ | %27 |
8 | * | %2A |
9 | + | %2B |
10 | , | %2C |
11 | / | %2F |
Более подробно почитать на эту тему можно по ссылке.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ