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

Опишите структуру HTTP-запроса и ответа. Как классифицируются коды ответов?

Компании, где спрашивали
Ozon ФинтехOzon Финтех

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

sobes.tech AI

HTTP-запрос состоит из нескольких частей:

  1. Стартовая строка (Request line): содержит метод (GET, POST и т.д.), URI и версию протокола. Пример: GET /index.html HTTP/1.1
  2. Заголовки (Headers): ключ-значение, передают метаинформацию (например, Host, User-Agent, Content-Type).
  3. Тело запроса (Body): необязательно, содержит данные (например, при POST).

HTTP-ответ также состоит из:

  1. Стартовая строка (Status line): версия протокола, код состояния и текстовое описание. Пример: HTTP/1.1 200 OK
  2. Заголовки: метаинформация об ответе (например, Content-Type, Content-Length).
  3. Тело ответа: содержимое (HTML, JSON, файл и т.д.).

Коды ответов классифицируются по первой цифре:

  • 1xx (Информационные): запрос получен, продолжается обработка.
  • 2xx (Успех): запрос успешно обработан (например, 200 OK, 201 Created).
  • 3xx (Перенаправления): требуется дополнительное действие клиента (например, 301 Moved Permanently).
  • 4xx (Ошибки клиента): ошибка на стороне клиента (например, 404 Not Found, 400 Bad Request).
  • 5xx (Ошибки сервера): ошибка на стороне сервера (например, 500 Internal Server Error).

Пример запроса и ответа на Go:

req, _ := http.NewRequest("GET", "https://example.com", nil)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()
fmt.Println("Status code:", resp.StatusCode)

Это базовая структура и классификация HTTP-сообщений.