Ответ
Стандартный HTTP-ответ, который сервер отправляет клиенту, состоит из трех основных компонентов, разделенных специальными символами возврата каретки и перевода строки (CRLF).
1. Стартовая строка (Status Line)
Содержит результат обработки запроса и состоит из трех частей:
- Версия протокола: Например,
HTTP/1.1илиHTTP/2. - Код состояния (Status Code): Числовой код, отражающий результат (e.g.,
200,404,500). - Пояснение (Reason Phrase): Краткое текстовое описание кода (e.g.,
OK,Not Found).
Пример: HTTP/1.1 200 OK
2. Заголовки (Headers)
Пары ключ: значение, которые передают метаинформацию об ответе и его теле. Ключевые заголовки:
Content-Type: MIME-тип ресурса в теле ответа (e.g.,application/json,text/html).Content-Length: Размер тела ответа в байтах.Cache-Control: Инструкции по кэшированию ответа браузером или прокси-сервером.Set-Cookie: Устанавливает cookie на стороне клиента.
3. Тело ответа (Message Body)
Необязательная часть, содержащая сам ресурс (HTML-страница, JSON-объект, изображение). Отделяется от заголовков одной пустой строкой (CRLF).
Пример полного HTTP-ответа с JSON-телом:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 38
Date: Mon, 23 Oct 2023 10:00:00 GMT
Connection: keep-alive
{
"userId": 1,
"status": "active"
} Ответ 18+ 🔞
А, слушай, ну вот, блядь, классика жанра — HTTP-ответ. Это ж как письмо от сервера тебе, пользователю, приходит. Три главных куска, разделённых этими ёбаными CRLF — возврат каретки и перевод строки, ну ты в курсе.
1. Стартовая строка (Status Line)
Тут тебе, сука, результат всей этой движухи в трёх актах:
- Версия протокола: Ну,
HTTP/1.1или тамHTTP/2. Типа, на каком языке с тобой говорят. - Код состояния (Status Code): Циферка, которая всё говорит.
200— всё заебись,404— нихуя не нашёл,500— сервер сам себя обосрал. - Пояснение (Reason Phrase): Ну, чтоб ты, человек, тоже понял.
OK,Not Found— всё логично.
Пример: HTTP/1.1 200 OK — идеальный мир, ёпта.
2. Заголовки (Headers)
А это, блядь, как сопроводиловка, пары ключ: значение. Метаинформация, всякая хуйня о том, что в теле лежит.
Content-Type: Тип контента, который тебе шлют.application/json— JSONчик,text/html— страничка.Content-Length: Размер тела в байтах. Чтобы ты знал, сколько жрать.Cache-Control: Инструкции, как кэшировать эту хрень, чтобы потом быстрее было.Set-Cookie: А вот это, сука, печеньку тебе в браузер суют. Запомнится, падла.
3. Тело ответа (Message Body)
Ну а это уже сам товар, блядь. HTML, JSON, картинка — что запрашивал. Главное — от заголовков его одной пустой строкой отделить (CRLF), а то пиздец будет, ничего не заработает.
Вот тебе живой пример, смотри, как оно выглядит, когда всё ок:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 38
Date: Mon, 23 Oct 2023 10:00:00 GMT
Connection: keep-alive
{
"userId": 1,
"status": "active"
}
Вот и вся магия, блядь. Пришло такое — распаковывай и радуйся. Не пришло или пришло с кодом 500 — ну, извини, дружок, сегодня не твой день.