URL

URL

Введение

URL (Uniform Resource Locator) — это адрес ресурса в интернете. Как почтовый адрес для письма, URL точно указывает, где находится нужная страница или файл. Тестировщик работает с URL каждый день: проверяет переходы, параметры, редиректы и безопасность ссылок.

Структура URL

Полный URL состоит из нескольких частей:

https://shop.example.com:443/products/electronics?sort=price&page=2#reviews
  │           │           │         │                    │              │
scheme      host         port      path            query string      fragment

Разбор каждой части

ЧастьОписаниеПример
schemeПротокол передачи данныхhttp, https
hostДоменное имя или IP-адресshop.example.com
portНомер порта (опционально):443, :8080
pathПуть к ресурсу на сервере/products/electronics
query stringПараметры запроса?sort=price&page=2
fragmentЯкорь на странице (обрабатывается браузером)#reviews

Порты по умолчанию: HTTP — 80, HTTPS — 443. Если порт стандартный, его обычно не указывают.

Query String в деталях

Query string начинается с ?, параметры разделяются &:

?sort=price&page=2&category=phones&in_stock=true
  • sort=price — ключ sort, значение price
  • page=2 — ключ page, значение 2

Для тестировщика: параметры query string — отличное место для поиска уязвимостей и багов.

URL-кодирование

Не все символы допустимы в URL "как есть". Специальные символы кодируются в формате %HEX:

СимволКодПример
Пробел%20 или +hello%20world
@%40user%40mail.com
#%23title%23section
&%26a%26b
Кириллица%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82

Пример: URL https://site.com/search?q=красная шапочка в реальности выглядит как:

https://site.com/search?q=%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D0%B0%D1%8F%20%D1%88%D0%B0%D0%BF%D0%BE%D1%87%D0%BA%D0%B0

Тестирование URL

Что нужно проверять

1. Валидные URL:

  • Стандартный URL работает корректно
  • URL с кириллицей отображается и работает
  • URL с параметрами возвращает правильные данные

2. Невалидные URL:

  • Несуществующий путь → 404
  • Удалённый раздел → редирект или 404

3. Длинные URL:

  • Очень длинный query string (браузеры ограничивают до ~2000 символов, серверы — по-разному)

4. Специальные символы:

  • ?id=1 OR 1=1 (SQL-инъекция)
  • ?redirect=javascript:alert(1) (XSS через redirect)
  • Двойные слэши в пути: //admin

5. Регистр букв:

  • /Products и /products — это один и тот же URL? (зависит от настройки сервера)
  • Параметры обычно чувствительны к регистру: ?Sort=price?sort=price

Практические кейсы

# Проверить пагинацию:
/articles?page=1    → первая страница (OK)
/articles?page=0    → что вернёт? (граничный кейс)
/articles?page=-1   → ошибка или первая страница?
/articles?page=abc  → ошибка валидации?
/articles?page=9999 → пустая страница или 404?

Частые ошибки понимания

  • ❌ "Fragment (#section) отправляется на сервер" → нет, fragment обрабатывается только браузером
  • ❌ "Параметры в URL всегда безопасны" → параметры могут содержать инъекции, всегда проверяй
  • ❌ "HTTP и HTTPS в URL — без разницы" → HTTPS шифрует, данные не передаются открытым текстом

Что мы запомним

  • URL = scheme + host + port + path + query string + fragment
  • Query string содержит параметры после ?, разделённые &
  • Специальные символы в URL кодируются: пробел → %20
  • Fragment # обрабатывается только браузером, на сервер не попадает
  • Тестируй URL с граничными значениями параметров, специальными символами и очень длинными значениями

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике