Ответ
HTTP (HyperText Transfer Protocol) относится к прикладному уровню (Application Layer).
Это справедливо для обеих основных сетевых моделей:
- Модель OSI: Это 7-й, самый верхний уровень. Он отвечает за предоставление сетевых служб непосредственно для приложений пользователя (например, браузеров или API-клиентов).
- Стек TCP/IP: Это также верхний прикладной уровень (Application Layer), который объединяет функции нескольких верхних уровней модели OSI (прикладного, представления и сеансового).
Ключевая роль HTTP:
Он определяет правила и формат сообщений (запросов и ответов) для взаимодействия между клиентом и сервером в вебе. Для надежной доставки этих сообщений HTTP обычно использует протокол TCP с транспортного уровня.
Пример использования в Go наглядно показывает, как программист взаимодействует именно с прикладным уровнем, не задумываясь о деталях TCP-соединений:
package main
import (
"fmt"
"io"
"log"
"net/http"
)
func main() {
// Отправляем HTTP GET-запрос (прикладной уровень)
resp, err := http.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Читаем тело ответа
body, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}