Как выглядит HTTP сообщение

«Как выглядит HTTP сообщение» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP сообщение состоит из стартовой строки, заголовков (headers) и тела (body).

Запрос (Request):

GET /path HTTP/1.1  
Host: example.com  
User-Agent: Go-http-client/1.1  
Accept: application/json  

{"key": "value"}  
  • Стартовая строка: Метод URI Версия_HTTP
  • Заголовки: Key: Value
  • Тело (опционально)

Ответ (Response):

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

{"status": "ok"}  
  • Стартовая строка: Версия_HTTP Код_статуса Пояснение
  • Заголовки и тело аналогичны запросу.

В Go можно работать с HTTP через net/http, например:

resp, err := http.Get("https://example.com")
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)