Протокол HTTP и REST API
Вы изучите модель «запрос — ответ» протокола HTTP, его методы и коды состояния, а также принципы архитектуры REST. Потренируетесь проектировать понятные и безопасные API на основе ресурсов.
Список тем (2 из 2)
Глава 1. Операционные системы
Глава 2. Сетевые технологии
HTTP (HyperText Transfer Protocol) — протокол прикладного уровня для обмена данными между клиентом (например, браузером) и сервером. Он построен на модели «запрос — ответ»: клиент отправляет запрос, сервер возвращает ответ; запрос состоит из метода, адреса (URL), заголовков и необязательного тела. Поскольку HTTP не хранит состояние (stateless), сервер обрабатывает каждый запрос независимо от предыдущих, а чтобы «помнить» пользователя, используют cookie или токены. Для защиты соединения HTTP работает поверх TLS — это и есть HTTPS.
Чаще всего используются методы: GET — чтение ресурса, POST — создание нового, PUT — полная замена ресурса, PATCH — частичное изменение и DELETE — удаление. GET считается безопасным (не меняет состояние сервера); GET, PUT и DELETE идемпотентны, то есть повторение запроса не оказывает дополнительного влияния на состояние сервера, а POST идемпотентным не является. Код состояния в ответе сообщает результат: 2xx — успех (200 OK, 201 Created), 3xx — перенаправление, 4xx — ошибка клиента (404 Not Found), 5xx — ошибка сервера (500 Internal Server Error).
REST (Representational State Transfer) — архитектурный стиль, описанный Роем Филдингом в докторской диссертации в 2000 году. Его главная идея: всё (пользователь, заказ, статья) является ресурсом со своим адресом, например /users/42. Действие над ресурсом выражается методом HTTP: GET /users/42 возвращает пользователя, а DELETE /users/42 удаляет его. Ресурс обычно передаётся в формате JSON, а тип данных клиент узнаёт из заголовка Content-Type.
REST опирается на несколько ограничений: разделение клиента и сервера, отсутствие состояния (каждый запрос содержит всю необходимую информацию), возможность кэширования, единообразный интерфейс и многоуровневая структура. На практике в адресах хорошего API используют существительные, а не глаголы (/orders, /orders/7), коллекции называют во множественном числе, а версию указывают в адресе (/v1/orders). Ошибки возвращают с подходящим кодом состояния и понятным сообщением, для аутентификации обычно применяют токен в заголовке Authorization, а соединение защищают с помощью HTTPS.
Главное
- HTTP — протокол прикладного уровня без сохранения состояния, построенный на модели «запрос — ответ».
- Методы (
GET,POST,PUT,PATCH,DELETE) задают действие над ресурсом, а коды состояния (2xx–5xx) — результат. GET,PUTиDELETEидемпотентны, аPOST— нет.- REST — архитектурный стиль, основанный на ресурсах, их адресах и единообразном интерфейсе.
- Хороший API использует адреса с существительными, правильные коды состояния, версионирование и HTTPS.
Практические задания
- В терминале выполните
curl -i https://example.comи объясните код состояния в ответе, заголовокContent-Typeи ещё два заголовка. - Откройте любой сайт при включённой вкладке Network в инструментах разработчика браузера (DevTools) и запишите метод, код состояния и размер не менее чем трёх запросов.
- Спроектируйте REST API для ресурса книг (
books): в таблице запишите метод HTTP, адрес и ожидаемый код состояния для пяти действий — список, одна книга, создание, обновление и удаление.
Вопросы для закрепления
Проверьте себя: сначала подумайте, потом откройте ответ.
1Почему HTTP называют протоколом без сохранения состояния?Показать ответСкрыть ответ
Сервер обрабатывает каждый запрос независимо от предыдущих и не хранит информации о них; если нужна сессия, cookie или токен каждый раз отправляет клиент.2Чем отличаются методы `PUT` и `POST`?Показать ответСкрыть ответ
`PUT` полностью заменяет ресурс по указанному адресу и идемпотентен; `POST` обычно создаёт новый ресурс или запускает действие, и при повторе может каждый раз давать новый результат.3Чем отличаются коды состояния `401` и `403`?Показать ответСкрыть ответ
`401` — клиент не прошёл аутентификацию (личность неизвестна), `403` — личность известна, но доступа к ресурсу нет.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Пройдено тем: 0 из 2
Войти и отметить