HTTP
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, дополнительные методы и заголовки.
HTTP/2
[править]Версия 2015 года. Ввела мультиплексирование (несколько запросов в одном соединении), сжатие заголовков, приоритизацию, server push.
HTTP/3
[править]Версия 2022 года. Использует протокол QUIC вместо TCP, что обеспечивает более быстрое установление соединения и лучшую производительность при потере пакетов.
HTTP и HTTPS
[править]HTTPS (HTTP Secure) - защищённая версия протокола, использующая шифрование SSL/TLS. Обеспечивает:
- Конфиденциальность данных (шифрование)
- Аутентификацию сервера (подтверждение подлинности сайта)
- Целостность данных (защита от подмены)
Для SEO HTTPS является фактором ранжирования. Браузеры помечают сайты без HTTPS как «небезопасные».
