Sobes.tech
Назад к вопросам
Middle
6

Как устроен HTTP/1.x: запрос, ответ, заголовки, тело, отсутствие состояния?

Компании, где спрашивали
fabriqeue

Ответ от нейросети

sobes.tech AI

HTTP/1.x — это протокол передачи гипертекста, основанный на модели запрос-ответ.

Запрос: клиент отправляет запрос на сервер, который состоит из:

  • Стартовой строки (метод, URI, версия протокола), например: GET /index.html HTTP/1.1
  • Заголовков (ключ: значение), например: Host: example.com
  • Пустой строки, отделяющей заголовки от тела
  • Тела (опционально), например, данные формы при POST

Ответ: сервер отвечает аналогичной структурой:

  • Стартовая строка с кодом состояния, например: HTTP/1.1 200 OK
  • Заголовки
  • Пустая строка
  • Тело ответа (например, HTML-страница)

Заголовки передают метаинформацию, например, тип содержимого (Content-Type), длину тела (Content-Length), куки и др.

Отсутствие состояния: HTTP/1.x — статeless протокол, то есть каждый запрос обрабатывается независимо, сервер не хранит информацию о предыдущих запросах. Для сохранения состояния используются механизмы, например, куки или сессии.

Пример запроса:

GET /page HTTP/1.1
Host: example.com
User-Agent: curl/7.68.0

Пример ответа:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 125

<html>...</html>