HTML - URL Encoding
Здравствуйте, будущие веб-разработчики! Сегодня мы окунёмся в fascинирующий мир URL-кодирования. Не волнуйтесь, если вы новички; мы начнём с основ и постепенно перейдём к более сложному. К концу этого урока вы будете кодировать URL как профи!

Что такое URL-кодирование?
Прежде чем мы перейдём к примерам, давайте поймём, что такое URL-кодирование и почему оно важно.
URL-кодирование — это метод преобразования символов в формат, который можно передать через Интернет. Это как дать вашему тексту специальный паспорт для безопасного путешествия по вебу!
Представьте себе: вы пытаетесь отправить письмо с замысловатым адресом, включающим символы и пробелы. Почтовая служба может запутаться! URL-кодирование — это как переписать этот адрес так, чтобы каждый почтовый работник (или в нашем случае, каждый веб-сервер) мог его понять.
Пример
Давайте начнём с простого примера:
https://www.example.com/my file.html
Этот URL содержит пробел, который может вызвать проблемы. Когда мы его кодируем, он становится:
https://www.example.com/my%20file.html
Смотрите %20? Это URL-кодированная версия пробела. Круто, правда?
Кодирование ASCII-управляющих символов
Теперь давайте поговорим о ASCII-управляющих символах. Это специальные символы, которые управляют обработкой текста. В URL-кодировании нам нужно быть особенно осторожными с ними.
Вот таблица некоторых.common ASCII-управляющих символов и их закодированных версий:
| Символ | Закодировано |
|---|---|
| NUL | %00 |
| SOH | %01 |
| STX | %02 |
| ETX | %03 |
Например, если вам нужно включить символ NUL в URL (хотя это редкость), вы будете использовать %00.
Кодирование некорректных ASCII-символов
Некорректные ASCII-символы — это те, которые находятся за пределами стандартного набора ASCII, такие как accented буквы или символы из других алфавитов. Эти也需要 особого обращения.
Давайте рассмотрим пример:
https://www.example.com/café
Когда закодирован, это становится:
https://www.example.com/caf%C3%A9
é был заменён на %C3%A9. Это обеспечивает правильную интерпретацию этого символа серверами по всему миру.
Кодирование зарезервированных символов
Some символы имеют особое значение в URL. Мы называем их зарезервированными символами, и их нужно кодировать, если мы хотим использовать их в качестве обычных символов.
Вот таблица зарезервированных символов и их закодированных версий:
| Символ | Закодировано |
|---|---|
| ! | %21 |
| # | %23 |
| $ | %24 |
| & | %26 |
| ' | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
Давайте рассмотрим пример:
https://www.example.com/search?q=fish&chips
Этот URL использует & в качестве разделителя между параметрами. Если бы мы действительно хотели искать "fish & chips", мы бы закодировали его так:
https://www.example.com/search?q=fish%26chips
Теперь сервер знает, что мы ищем "fish & chips", а не два отдельных поисковых запроса!
Кодирование небезопасных символов
Lastly, давайте поговорим о небезопасных символах. Это символы, которые могут быть неправильно поняты различными системами и должны всегда кодироваться.
Вот таблица некоторых небезопасных символов:
| Символ | Закодировано |
|---|---|
| Space | %20 |
| " | %22 |
| < | %3C |
| > | %3E |
| # | %23 |
| % | %25 |
| { | %7B |
| } | %7D |
| | | %7C |
| \ | %5C |
| ^ | %5E |
| ~ | %7E |
Давайте используем их в примере:
https://www.example.com/search?q=C++ Programming
Когда правильно закодирован, это становится:
https://www.example.com/search?q=C%2B%2B%20Programming
Мы закодировали знаки + и пробел, чтобы они были интерпретированы правильно.
Объединение всего вместе
Теперь, когда мы рассмотрели все эти типы кодирования, давайте попробуем более сложный пример:
https://www.example.com/search?q=Where's the café? (It's urgent!)
Когда полностью закодирован, это становится:
https://www.example.com/search?q=Where%27s%20the%20caf%C3%A9%3F%20%28It%27s%20urgent%21%29
Вот это да! Но теперь он безопасен для передачи через Интернет без риска неправильной интерпретации.
Заключение
И вот вы, люди! Вы только что сделали свои первые шаги в мир URL-кодирования. Помните, хотя это может показаться сложным сначала, это всё о том, чтобы убедиться, что ваши URL могут быть правильно интерпретированы где бы они ни пошли в вебе.
Смотрите на URL-кодирование как на universal translator Интернета. Он помогает вашим URL clearly общаться с серверами по всему миру, несмотря на то, какие special символы или пробелы они содержат.
Пока вы продолжаете своё путешествие в веб-разработке, вы обнаружите, что понимание URL-кодирования очень полезно. Оно поможет вам создавать robust ссылки, обрабатывать пользовательский ввод безопасно и даже отлаживать сложные URL-связанные проблемы.
Продолжайте практиковаться, и скоро URL-кодирование将成为 для вас second nature. Счастливого кодирования, и пусть все ваши URL безопасно путешествуют по вебу!
Credits: Image by storyset
