HTTP-запросы: GET, HEAD и другие методы простым языком
12 мин чтения Обновлено:
HTTP-запросы: GET, HEAD и другие методы простым языком

HTTP-запросы: GET, HEAD и другие методы простым языком

Каждый раз, когда браузер открывает страницу, он отправляет HTTP-запрос на сервер. Но запросы бывают разные — и тип запроса во многом определяет, что именно произойдёт. Разберём основные методы простым языком. Отдельно посмотрим, чем полезна проверка доступности HEAD-запросом.

GET — самый распространённый метод

GET-запрос — это просьба «дай мне этот ресурс». Когда вы вводите адрес в браузере или кликаете на ссылку, браузер отправляет именно GET-запрос. Параметры передаются прямо в URL, например:

GET /search?q=мониторинг+сайтов&page=2 HTTP/1.1
Host: prufen.ru

Ключевые свойства GET:

  • Идемпотентность: повторный запрос даёт тот же результат. Можно вызывать сколько угодно раз без побочных эффектов.
  • Кешируемость: браузеры и прокси могут кешировать GET-ответы. Именно поэтому страницы загружаются быстрее при повторном посещении.
  • Безопасность: GET не должен изменять данные на сервере — только читать.
  • Ограничение длины URL: параметры в строке запроса ограничены (около 2000–8000 символов в зависимости от браузера и сервера).

GET-запросы сохраняются в истории браузера, логах сервера и могут быть добавлены в закладки. Поэтому никогда не передавайте пароли или чувствительные данные через GET.

HEAD — GET без тела ответа

HEAD-запрос работает точно так же, как GET, но сервер возвращает только заголовки — без тела ответа. Это мощный инструмент для проверки доступности и состояния ресурса.

HEAD / HTTP/1.1
Host: prufen.ru

Сервер ответит заголовками (статус, Content-Type, Content-Length, Last-Modified, ETag), но не отправит HTML-страницу. Это экономит трафик и время.

Где HEAD незаменим:

  • Мониторинг доступности: проверить, что сервер отвечает 200, не скачивая весь контент. Это в 10–100 раз быстрее и дешевле GET.
  • Валидация кеша: проверить, изменился ли ресурс (по ETag или Last-Modified), прежде чем загружать полную версию.
  • Проверка размера файла: получить Content-Length, не скачивая файл.
  • Проверка перенаправлений: отследить цепочку редиректов.

POST — отправка данных

POST используется для отправки данных на сервер: регистрация, логин, отправка формы, загрузка файла. Данные передаются в теле запроса, не в URL.

POST /api/login HTTP/1.1
Host: app.prufen.ru
Content-Type: application/json

{"email": "user@example.com", "password": "secret"}

POST не идемпотентен: повторная отправка создаёт новый ресурс или выполняет действие повторно. Браузер предупреждает об этом при нажатии «Обновить страницу» после POST.

PUT и PATCH — обновление данных

PUT полностью заменяет ресурс. Вы отправляете полный объект, и сервер записывает его вместо существующего. PUT идемпотентен — повторный PUT с теми же данными не изменит результат.

PATCH частично обновляет ресурс. Вы отправляете только изменившиеся поля. Это экономичнее PUT при работе с большими объектами.

DELETE — удаление ресурса

DELETE удаляет указанный ресурс. Метод идемпотентен: повторное удаление уже удалённого объекта возвращает 404, но не создаёт новых проблем.

Таблица HTTP-методов

Метод Назначение Тело запроса Тело ответа Идемпотентен Кешируется
GET Получить ресурс Нет Да Да Да
HEAD Получить заголовки Нет Нет Да Да
POST Создать ресурс / действие Да Да Нет Нет
PUT Заменить ресурс полностью Да Да Да Нет
PATCH Частично обновить Да Да Нет Нет
DELETE Удалить ресурс Нет Нет Да Нет
OPTIONS Узнать поддерживаемые методы Нет Да Да Нет

GET против HEAD для мониторинга

Для проверки доступности сайта HEAD однозначно предпочтительнее GET. Вот почему:

  • Скорость: HEAD не передаёт тело ответа — проверка занимает 50–200 мс вместо 500–2000 мс для полной страницы.
  • Нагрузка на сервер: HEAD не рендерит HTML, не выполняет SQL-запросы для формирования контента страницы.
  • Трафик: мониторинг каждые 2 минуты × 5 локаций = 3600 проверок в сутки. HEAD экономит сотни мегабайт.
  • Статус-код: и GET, и HEAD возвращают одинаковый статус (200, 301, 404, 500). Для мониторинга доступности этого достаточно.

Однако HEAD не подходит для проверки содержимого страницы. Если нужно убедиться, что конкретный текст присутствует на странице, — используйте GET. Для регулярных проверок аптайма оптимален именно мониторинг через HEAD.

HTTP-коды состояния

Сервер всегда отвечает трёхзначным кодом, который описывает результат запроса:

  • 2xx — Успех: 200 OK (запрос выполнен), 201 Created (ресурс создан), 204 No Content (успех, без тела).
  • 3xx — Перенаправление: 301 Moved Permanently (постоянный редирект), 302 Found (временный), 304 Not Modified (кеш актуален).
  • 4xx — Ошибка клиента: 400 Bad Request (неверный запрос), 401 Unauthorized (не авторизован), 403 Forbidden (доступ запрещён), 404 Not Found (не найдено), 429 Too Many Requests (превышен лимит запросов).
  • 5xx — Ошибка сервера: 500 Internal Server Error (внутренняя ошибка), 502 Bad Gateway (ошибка прокси), 503 Service Unavailable (сервер перегружен или на обслуживании).

HTTP-методы и мониторинг Пруфен

Пруфен, сервис мониторинга сайтов, использует оба типа запросов — в зависимости от типа проверки:

  • Проверка доступности (HEAD): лёгкий запрос каждые 2 минуты. Фиксируем статус-код, время отклика, наличие редиректов.
  • Проверка производительности (GET): полный запрос с измерением всех фаз — DNS, TCP-соединение, TLS-рукопожатие, время до первого байта (TTFB), загрузка тела. Строим детальный график.
  • Проверка контента: GET + анализ тела ответа на наличие нужного текста или HTML-элементов.
  • Проверка robots.txt: GET-запрос к /robots.txt, сохранение истории, анализ директив.

Понимание HTTP-методов помогает правильно настраивать мониторинг и интерпретировать результаты. Если сервер отвечает 405 Method Not Allowed на HEAD — это сигнал о нестандартной конфигурации, которую стоит проверить.

Была ли статья полезна?

Начните мониторинг прямо сейчас

Бесплатный тариф — до 5 проверок. 150 ₽ на баланс при регистрации.

Создать аккаунт