Ответ
HTTP-ответ состоит из нескольких обязательных и опциональных частей:
-
Строка статуса (Status Line)
HTTP/1.1 200 OK- Содержит версию протокола, код статуса и его текстовое описание.
-
Заголовки (Headers)
- Мета-информация для клиента и сервера.
- Примеры:
Content-Type: application/json; charset=utf-8 Cache-Control: no-cache Server: nginx/1.18.0 Set-Cookie: sessionId=abc123; Secure; HttpOnly
-
Пустая строка (CRLF)
- Разделитель между заголовками и телом ответа.
-
Тело ответа (Body)
- Основные данные (HTML, JSON, изображение и т.д.). Может отсутствовать (например, для ответа
204 No Content). - Пример (JSON):
{ "status": "success", "data": { "id": 42, "name": "Example" } }
- Основные данные (HTML, JSON, изображение и т.д.). Может отсутствовать (например, для ответа
Практический пример полного ответа:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 29
Date: Mon, 27 Jan 2025 10:00:00 GMT
{"message":"Data retrieved"}
В современных фреймворках (например, Express.js для Node.js или Django для Python) эти компоненты инкапсулированы в объект ответа (например, res в Express), что упрощает управление ими.