Какая структура у HTTP ответа

Ответ

HTTP ответ состоит из:

  1. Строка статуса - версия протокола, код статуса и его описание:
HTTP/1.1 200 OK
  1. Заголовки (Headers) - метаданные ответа в формате ключ: значение:
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
  1. Тело ответа (Body) - данные, которые сервер отправляет клиенту (может отсутствовать):
<!DOCTYPE html>
<html>
  <body>Hello World</body>
</html>

Пример полного ответа:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 27 Mar 2023 12:00:00 GMT

{"message": "Success"}

Заголовки и тело разделяются пустой строкой. Коды статусов бывают: 1xx (информационные), 2xx (успех), 3xx (перенаправления), 4xx (ошибка клиента), 5xx (ошибка сервера).

Ответ 18+ 🔞

Давай разберём эту хуйню, как есть, без соплей. Представь, что сервер — это такой мужик-бариста, а ты ему заказал кофе.

1. Строка статуса — это он тебе сразу в лицо говорит, как дела.
Вот он смотрит на тебя и выдаёт:

HTTP/1.1 200 OK

Перевод: «Ну, брат, всё чётко, держи свой латте, не обосрись».
А мог бы бухнуть 404 Not Found — это как «чё, мудила? Такого напитка у нас нет, иди нахуй».

2. Заголовки — это он тебе начинает пояснять детали.

Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache

Типа: «Слушай, кофе будет в керамической кружке, текст на русском, и, бля, не оставляй его на столе — сразу пей, а то остынет, дурак».

3. Тело ответа — это сам кофе, сука.

<!DOCTYPE html>
<html>
  <body>Hello World</body>
</html>

Вот, держи, горячий, ебать. Пей, не обожгись.


А вот полный ответ, как он выглядит в дикой природе:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 27 Mar 2023 12:00:00 GMT

{"message": "Success"}

Смотри: сначала он тебе пафосно объявляет статус, потом сыпет заголовками, как из пулемёта, потом делает паузу (пустая строка — это он взял дыхание, блядь), и наконец выкладывает сам товар — JSON, который по сути своей говорит «всё заебись».


Про коды статусов, чтоб ты не лажал:

  • 1xx (информационные) — «Э, погоди, я думаю...».
  • 2xx (успех) — «Всё сделал, на, получай, герой».
  • 3xx (перенаправления) — «О, а это не тут, иди нахуй вон к тому бариста».
  • 4xx (ошибка клиента) — «Сам дурак, неправильно заказал, иди переделывай».
  • 5xx (ошибка сервера) — «Я, бля, кофемашину сломал, сорян, заходи позже».

Вот и вся магия, ёпта. Ничего сложного, просто общение на чистом, матерном, цифровом языке.