Back to questions
Ozon Финтех
Middle+
1
Опишите структуру HTTP-запроса и ответа. Как классифицируются коды ответов?
Companies where asked
Answer from AI
sobes.tech AI
HTTP-запрос состоит из нескольких частей:
- Стартовая строка (Request line): содержит метод (GET, POST и т.д.), URI и версию протокола.
Пример:
GET /index.html HTTP/1.1 - Заголовки (Headers): ключ-значение, передают метаинформацию (например,
Host,User-Agent,Content-Type). - Тело запроса (Body): необязательно, содержит данные (например, при POST).
HTTP-ответ также состоит из:
- Стартовая строка (Status line): версия протокола, код состояния и текстовое описание.
Пример:
HTTP/1.1 200 OK - Заголовки: метаинформация об ответе (например,
Content-Type,Content-Length). - Тело ответа: содержимое (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-сообщений.