HTTP (Hypertext Transfer Protocol) — это протокол прикладного уровня для передачи данных, в частности гипертекста, между клиентом (например, браузером) и сервером.
Основные характеристики:
- Клиент-серверная архитектура: Клиент отправляет запрос, сервер обрабатывает его и возвращает ответ.
- Без сохранения состояния (stateless): Каждый запрос обрабатывается независимо от предыдущих. Состояние между запросами не сохраняется на стороне сервера.
- Использует TCP: Обычно работает поверх протокола TCP для надежной передачи данных.
- Порт по умолчанию: Обычно порт 80 для HTTP и 443 для HTTPS.
Основные методы HTTP (HTTP methods / verbs):
- GET: Запрашивает данные с сервера.
- POST: Отправляет данные на сервер для создания или обработки ресурса.
- PUT: Обновляет существующий ресурс или создает новый, если его нет.
- DELETE: Удаляет ресурс.
- PATCH: Частично обновляет ресурс.
- HEAD: Запрашивает только заголовки ответа, без тела.
- OPTIONS: Запрашивает информацию о методах, которые разрешены для ресурса.
Базовая структура HTTP-сообщения:
- Запрос:
- Стартовая строка (метод, URL, версия протокола)
- Заголовки (header fields)
- Тело сообщения (опционально)
- Ответ:
- Стартовая строка (версия протокола, код статуса, текстовое описание)
- Заголовки
- Тело сообщения (опционально)
Пример HTTP GET запроса:
http
Пример HTTP 200 OK ответа:
http
HTTP-коды статуса:
| Диапазон | Описание | Примеры |
|---|
| 1xx | Информационные | 100 Continue |
| 2xx | Успешные | 200 OK, 201 Created |
| 3xx | Перенаправления | 301 Moved Permanently, 302 Found |
| 4xx | Ошибки клиента | 400 Bad Request, 401 Unauthorized, 404 Not Found |
| 5xx | Ошибки сервера | 500 Internal Server Error, 503 Service Unavailable |
HTTPS — это расширение HTTP, которое добавляет шифрование с использованием TLS/SSL для обеспечения безопасности передачи данных.