Ответ
Протокол HTTP (HyperText Transfer Protocol) в своих классических версиях (1.0, 1.1, 2) работает поверх TCP (Transmission Control Protocol).
Почему TCP? TCP был выбран в качестве транспорта для HTTP, так как он гарантирует надежную, упорядоченную и безошибочную доставку данных между клиентом и сервером. Это критически важно для целостности веб-страниц, файлов и API-ответов.
- HTTP использует стандартный порт
80
. - HTTPS (HTTP Secure) использует порт
443
и добавляет слой шифрования TLS/SSL поверх TCP.
Пример низкоуровневого соединения (Python):
import socket
# Создаем TCP-сокет
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# Подключаемся к веб-серверу по 80 порту
s.connect(("example.com", 80))
# Отправляем сырой HTTP GET-запрос
s.sendall(b"GET / HTTP/1.1rnHost: example.comrnConnection: closernrn")
# Получаем ответ
response = s.recv(4096)
print(response.decode('utf-8'))
Важное уточнение: Современный протокол HTTP/3 отходит от этой модели и работает поверх QUIC, который, в свою очередь, использует UDP для уменьшения задержек при установке соединения.