Основы выполнения запроса в интернете
Основы выполнения запроса в интернете
Введение
Каждый раз, когда ты вводишь адрес сайта и нажимаешь Enter, за долю секунды происходит целая цепочка событий. Понимание этой цепочки помогает тестировщику диагностировать проблемы с загрузкой, сетевые ошибки и проблемы производительности.
Что происходит, когда ты вводишь URL
Рассмотрим шаги на примере открытия https://example.com/products:
Шаг 1: DNS-разрешение
Браузер не знает, где находится example.com. Он обращается к DNS-серверу (Domain Name System) — аналог телефонной книги интернета.
example.com → 93.184.216.34 (IP-адрес)
DNS преобразует доменное имя в IP-адрес, по которому можно найти сервер.
Шаг 2: TCP-соединение
Браузер устанавливает соединение с сервером по IP-адресу через протокол TCP. Происходит "тройное рукопожатие":
- Клиент → Сервер: SYN (хочу подключиться)
- Сервер → Клиент: SYN-ACK (принял, готов)
- Клиент → Сервер: ACK (подтверждаю)
Шаг 3: HTTPS-рукопожатие (TLS)
Для защищённого соединения браузер и сервер согласовывают шифрование. Браузер проверяет SSL-сертификат сервера.
Шаг 4: Отправка HTTP-запроса
Браузер отправляет запрос:
GET /products HTTP/1.1
Host: example.com
User-Agent: Chrome/120
Accept: text/html
Шаг 5: Сервер обрабатывает запрос
Сервер получает запрос, выполняет логику (может обратиться к БД), формирует ответ.
Шаг 6: HTTP-ответ
Сервер отвечает:
HTTP/1.1 200 OK
Content-Type: text/html
...
<html>...</html>
Шаг 7: Браузер рендерит страницу
Браузер получает HTML, строит DOM, применяет CSS, выполняет JavaScript.
Шаг 8: Дополнительные запросы
Браузер делает отдельные запросы за ресурсами: картинки, шрифты, CSS-файлы, JS-файлы, API-вызовы.
DNS и IP-адреса
| Понятие | Описание | Пример |
|---|---|---|
| IP-адрес | Числовой адрес сервера | 93.184.216.34 |
| Домен | Читаемое имя сайта | example.com |
| DNS | Служба перевода домена в IP | — |
| TTL | Время кэширования DNS-записи | 3600 секунд |
Важно для тестировщика: DNS кэшируется! После смены IP-адреса сайта изменения распространяются по DNS не мгновенно (от нескольких минут до 48 часов). Это называется DNS propagation.
Коды HTTP-ответов
| Код | Значение | Что искать |
|---|---|---|
| 200 | OK — всё хорошо | — |
| 301/302 | Redirect — перенаправление | Бесконечный редирект? |
| 400 | Bad Request — неверный запрос клиента | Неправильные параметры |
| 401 | Unauthorized — нужна авторизация | Не передан токен |
| 403 | Forbidden — доступ запрещён | Нет прав |
| 404 | Not Found — ресурс не найден | Неверный URL |
| 500 | Internal Server Error — ошибка сервера | Баг на бэкенде |
| 503 | Service Unavailable — сервис недоступен | Сервер перегружен |
Почему это важно для тестирования
- Задержка (latency): каждый шаг добавляет время. DNS-проблемы → долгий первый байт ответа
- Ошибки на разных шагах: ошибка DNS — сайт "не найден"; ошибка TLS — предупреждение о сертификате; ошибка 500 — проблема на сервере
- Дополнительные запросы: страница может выглядеть загруженной, но некоторые данные ещё грузятся (API-запросы на вкладке Network)
Частые ошибки понимания
- ❌ "Если страница открылась, значит все запросы прошли успешно" → HTML мог загрузиться, а API-запрос за данными — упасть с 500
- ❌ "DNS — это раз и навсегда" → DNS-записи кэшируются и могут устаревать
- ❌ "HTTP и HTTPS — одно и то же" → HTTPS шифрует данные, важно для авторизации и личных данных
Что мы запомним
- При открытии URL браузер выполняет 8 шагов: DNS → TCP → TLS → запрос → обработка → ответ → рендеринг → доп. запросы
- DNS — это "телефонная книга интернета", переводит домены в IP-адреса
- HTTP-коды ответов — важный инструмент диагностики: 4xx — ошибка клиента, 5xx — ошибка сервера
- Страница может выглядеть загруженной, но данные с API ещё не пришли — проверяй вкладку Network