HTTP

Оригинальное название: Hypertext Transfer Protocol (HTTP)

Коротко

Протокол, по которому браузер и другие клиенты запрашивают у сервера страницы, файлы и данные, а сервер отвечает содержимым и кодом статуса.

Что такое «HTTP»

HTTP — язык общения в вебе. Каждый раз, когда браузер открывает страницу, он отправляет серверу текстовый запрос: какой адрес нужен, каким методом и с какими заголовками. Сервер отвечает статусом, заголовками и телом — HTML, картинкой или JSON. Одна страница порождает десятки таких обменов: сам документ, стили, скрипты, шрифты, изображения.

Протокол не хранит состояние между запросами. Чтобы сервер узнавал посетителя, поверх HTTP используют cookie и токены. Шифрование добавляет HTTPS: тот же HTTP, но внутри TLS-соединения.

Как выглядит обмен

GET /catalog/chairs/ HTTP/1.1
Host: example.ru
Accept: text/html
Accept-Encoding: gzip, br

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=600
Content-Encoding: br

Запрос сообщает метод и путь, обязательный заголовок Host и какие форматы и сжатие поддерживает клиент. Ответ сообщает код, тип содержимого и правила кеширования. Заголовки ответа сайта удобно посмотреть командой curl -I https://example.ru/. Действия GET, POST и другие разобраны в статье про методы HTTP.

Коды состояния

  • 2xx — успех: 200 OK, 201 Created.
  • 3xx — перенаправление: 301 постоянное, 302 временное, 304 «не изменилось, берите из кеша».
  • 4xx — ошибка клиента: 404 нет страницы, 403 доступ запрещён, 429 слишком много запросов.
  • 5xx — ошибка сервера: 500 сбой приложения, 502 и 504 проблемы между веб-сервером и PHP.

Что означают серверные коды для владельца сайта и что делать в первую очередь, описано в статье об ошибках 500, 502 и 503.

Версии протокола

HTTP/1.1 передаёт запросы по одному в каждом соединении, поэтому браузеры открывают несколько соединений параллельно. HTTP/2 мультиплексирует много запросов в одном соединении и сжимает заголовки. HTTP/3 работает поверх QUIC на базе UDP и быстрее восстанавливается при потерях пакетов, что заметно на мобильных сетях. Смысл запросов, методы и коды при этом не меняются — меняется способ доставки.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение