HTTP
HTTP (HyperText Transfer Protocol / Протокол передачи гипертекста) — это прикладной протокол, используемый для передачи данных в интернете между клиентом (чаще всего — веб-браузером) и сервером. Именно по протоколу HTTP загружаются веб-страницы, изображения, видео и другие ресурсы при обращении к сайтам.
HTTP был разработан как часть архитектуры World Wide Web и остаётся одним из ключевых стандартов интернета.
Основные характеристики HTTP:
- Клиент-серверная модель
Клиент (обычно браузер) отправляет HTTP-запрос на сервер, а сервер возвращает HTTP-ответ, содержащий нужный ресурс (например, HTML-страницу). - Протокол без сохранения состояния (stateless)
Каждый запрос независим и не содержит информации о предыдущих. Для хранения состояния используются cookies, сессии, токены и др. - Человеко-читаемый формат
Заголовки запросов и ответов можно прочитать и проанализировать вручную (в отличие от некоторых бинарных протоколов). - Гибкость и расширяемость
HTTP поддерживает множество методов, заголовков и кодов состояния, что делает его универсальным средством обмена данными.
Основные HTTP-методы:
- GET — получить ресурс (например, веб-страницу).
- POST — отправить данные на сервер (например, форму).
- PUT — загрузить или заменить ресурс.
- DELETE — удалить ресурс.
- HEAD, OPTIONS, PATCH — вспомогательные методы для получения информации или частичного обновления.
Пример HTTP-запроса:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Пример HTTP-ответа:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024
Статусы HTTP-ответов:
- 1xx — информационные (например, 100 Continue)
- 2xx — успешные (200 OK, 201 Created)
- 3xx — перенаправления (301 Moved Permanently, 302 Found)
- 4xx — ошибки клиента (404 Not Found, 403 Forbidden)
- 5xx — ошибки сервера (500 Internal Server Error)
Протоколы на основе или с участием HTTP:
- HTTPS — безопасная версия HTTP, использующая шифрование через TLS.
- REST API — архитектурный стиль взаимодействия с сервером, использующий HTTP-запросы.
- HTTP/2 и HTTP/3 — современные версии протокола с улучшенной производительностью и параллельной загрузкой ресурсов.
Применение HTTP:
- Обычная загрузка веб-страниц.
- Работа веб-приложений и сервисов.
- Мобильные приложения, использующие веб-API.
- Обмен данными между IoT-устройствами и облаком.