HTTP

Материал из Энциклопедия интернет-маркетинга MarketWiki

HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) - протокол прикладного уровня, используемый для передачи данных в веб-среде. HTTP определяет, как сообщения форматируются и передаются от клиента (браузера) к серверу и обратно, а также как серверы и браузеры должны реагировать на различные команды.

В интернет-маркетинге и SEO понимание HTTP необходимо для настройки редиректов, анализа технических проблем, работы с логами сервера, обеспечения безопасности сайта (HTTPS) и правильной индексации страниц поисковыми системами.

Основные понятия

[править]

HTTP работает по модели «клиент-сервер». Клиент (обычно веб-браузер) отправляет запрос серверу, сервер обрабатывает запрос и возвращает ответ.

HTTP-запрос

[править]

Запрос клиента содержит:

  • Метод запроса (GET, POST, PUT, DELETE и др.)
  • URL запрашиваемого ресурса
  • Версию протокола
  • Заголовки (headers) - дополнительная информация
  • Тело запроса (для методов POST, PUT)

HTTP-ответ

[править]

Ответ сервера содержит:

  • Версию протокола
  • Код состояния (статус)
  • Заголовки (headers)
  • Тело ответа (содержимое страницы, файл и т.д.)

HTTP-методы

[править]

Основные методы запроса, используемые в вебе.

  • GET - запрос содержимого указанного ресурса. Самый распространённый метод, используется при переходе по ссылкам.
  • POST - отправка данных на сервер (например, из формы). Может создавать или изменять ресурс.
  • PUT - замена текущего представления ресурса данными запроса.
  • DELETE - удаление указанного ресурса.
  • HEAD - аналогичен GET, но сервер возвращает только заголовки, без тела ответа.
  • OPTIONS - запрос информации о поддерживаемых методах для указанного ресурса.
  • PATCH - частичное изменение ресурса.

HTTP-заголовки

[править]

Заголовки передают дополнительную информацию между клиентом и сервером.

Заголовки запроса

[править]
  • Host - доменное имя сервера (обязательный заголовок)
  • User-Agent - информация о браузере или клиенте
  • Accept - какие типы контента готов принимать клиент
  • Accept-Language - предпочитаемые языки
  • Cookie - передача сохранённых данных о сессии
  • Referer - URL, с которого пришёл пользователь
  • Authorization - данные для авторизации

Заголовки ответа

[править]
  • Content-Type - тип содержимого (text/html, application/json, image/jpeg)
  • Content-Length - размер содержимого в байтах
  • Set-Cookie - установка cookie на стороне клиента
  • Cache-Control - директивы кэширования
  • Location - URL для перенаправления (используется с кодами 3xx)
  • Server - информация о сервере
  • X-Robots-Tag - указания для поисковых роботов (аналог мета-тега robots)

HTTP-статусы

[править]

Коды состояния HTTP сообщают о результате выполнения запроса.

1xx: Информационные

[править]
  • 100 Continue - сервер готов принять тело запроса
  • 101 Switching Protocols - сервер переключается на другой протокол

2xx: Успешные

[править]
  • 200 OK - стандартный ответ при успешной загрузке страницы
  • 201 Created - ресурс успешно создан
  • 204 No Content - запрос успешно обработан, но ответ не содержит содержимого
  • 206 Partial Content - сервер возвращает часть ресурса

3xx: Перенаправления

[править]
  • 301 Moved Permanently - постоянный редирект
  • 302 Found - временный редирект
  • 303 See Other - редирект после POST-запроса на GET
  • 304 Not Modified - ресурс не изменился с последнего запроса
  • 307 Temporary Redirect - временный редирект с сохранением метода
  • 308 Permanent Redirect - постоянный редирект с сохранением метода

4xx: Ошибки клиента

[править]
  • 400 Bad Request - некорректный запрос
  • 401 Unauthorized - требуется авторизация
  • 403 Forbidden - доступ запрещён
  • 404 Not Found - страница не найдена
  • 410 Gone - страница удалена навсегда
  • 429 Too Many Requests - слишком много запросов

5xx: Ошибки сервера

[править]
  • 500 Internal Server Error - внутренняя ошибка сервера
  • 502 Bad Gateway - некорректный ответ от вышестоящего сервера
  • 503 Service Unavailable - сервер временно недоступен
  • 504 Gateway Timeout - превышено время ожидания от вышестоящего сервера

Версии HTTP

[править]

Протокол HTTP развивался на протяжении многих лет.

HTTP/0.9

[править]

Первая версия (1991). Поддерживала только GET-запросы и передачу HTML-файлов. Не имела заголовков и статусов.

HTTP/1.0

[править]

Версия 1996 года. Ввела заголовки, коды статусов, поддержку различных типов контента. Каждое соединение открывалось отдельно для каждого запроса.

HTTP/1.1

[править]

Версия 1999 года, до сих пор широко используемая. Ввела постоянные соединения (keep-alive), поддержку chunked transfer, дополнительные методы и заголовки.

Версия 2015 года. Ввела мультиплексирование (несколько запросов в одном соединении), сжатие заголовков, приоритизацию, server push.

Версия 2022 года. Использует протокол QUIC вместо TCP, что обеспечивает более быстрое установление соединения и лучшую производительность при потере пакетов.

HTTP и HTTPS

[править]

HTTPS (HTTP Secure) - защищённая версия протокола, использующая шифрование SSL/TLS. Обеспечивает:

  • Конфиденциальность данных (шифрование)
  • Аутентификацию сервера (подтверждение подлинности сайта)
  • Целостность данных (защита от подмены)

Для SEO HTTPS является фактором ранжирования. Браузеры помечают сайты без HTTPS как «небезопасные».

Связанные термины

[править]