Что такое HTTP-ответ (HTTP Response)?

«Что такое HTTP-ответ (HTTP Response)?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP-ответ (HTTP Response) — это сообщение, которое сервер отправляет клиенту в ответ на полученный HTTP-запрос. Он информирует клиента о результате обработки запроса.

Структура ответа:

  1. Строка статуса (Status Line):
    • Версия протокола (например, HTTP/1.1)
    • Код состояния (Status Code): Трехзначное число (например, 200)
    • Поясняющая фраза (например, OK)
  2. Заголовки (Headers): Метаданные ответа.
    Content-Type: application/json; charset=utf-8
    Cache-Control: max-age=3600
    Set-Cookie: sessionId=abc123; Path=/
  3. Тело (Body): Опциональные данные (HTML, JSON, изображение и т.д.).

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

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 42

{"status": "success", "data": {"id": 123}}

Классы кодов состояния:

  • 1xx (Информационные): 100 Continue — запрос может быть продолжен.
  • 2xx (Успех): 200 OK, 201 Created, 204 No Content.
  • 3xx (Перенаправление): 301 Moved Permanently, 302 Found, 304 Not Modified.
  • 4xx (Ошибка клиента): 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 405 Method Not Allowed.
  • 5xx (Ошибка сервера): 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable.

Почему это важно? Коды состояния — это стандартизированный способ коммуникации между клиентом и сервером, позволяющий клиенту понять результат операции и принять соответствующее решение (например, повторить запрос, показать ошибку пользователю).