Производительность
Одной из ключевых особенностей HTTP 2.0 является мультиплексирование, которое позволяет одновременную передачу нескольких запросов и ответов по одному соединению. Это снижает задержки и увеличивает пропускную способность.Бинарный протокол
В отличие от текстового протокола HTTP/1.1, HTTP/2 использует бинарный формат для передачи данных. Это улучшает эффективность передачи и уменьшает объем данных, которые необходимо передавать по сети.Шифрование
В HTTP 2.0 использование шифрования (TLS) является обязательным, в то время как в HTTP 1.1 это не является стандартным требованием.Заголовки
В HTTP 2.0 введены новые методы сжатия заголовков, что уменьшает объем передаваемых данных. Это помогает улучшить производительность и снизить задержки.Приоритеты
В HTTP 2.0 введено понятие приоритетов для запросов. Это позволяет серверу определить, какие запросы являются наиболее важными, и обрабатывать их в первую очередь. В HTTP 1.1 запросы обрабатываются в порядке поступления.Server Push
HTTP 2.0 поддерживает функцию Server Push, которая позволяет серверу принудительно отправлять ресурсы на клиентскую сторону, не дожидаясь запроса от клиента. Это позволяет улучшить производительность и снизить задержки.Однако важно отметить, что многие из этих улучшений, внедренных в HTTP 2.0, работают на уровне протокола и требуют соответствующей поддержки как на стороне сервера, так и на стороне клиента.
- Информационные (100-105)
- Успешные (200-226)
- Перенаправление (300-307)
- Ошибка клиента (400-499) - неправильная валидация
- Ошибка сервера (500-510)
REST (Representational State Transfer) - это архитектурный стиль для построения веб-сервисов и API.
-
Клиент-серверная модель: REST разделяет клиентскую и серверную стороны, что позволяет им развиваться независимо друг от друга.
-
Без состояния (Stateless): Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для выполнения этого запроса. Сервер не должен хранить состояние клиента между запросами. Это позволяет обеспечить масштабируемость и надежность системы.
-
Кэширование: REST поддерживает кэширование данных на стороне клиента. Сервер может отправлять заголовки, указывающие, что определенный ответ может быть кэширован клиентом. Клиенты, в свою очередь, могут использовать закэшированные данные, если они все еще актуальны.
-
Единообразный интерфейс: REST определяет набор единообразных методов и форматов данных для обмена информацией между клиентом и сервером. Наиболее распространенными методами являются GET (получение ресурса), POST (создание ресурса), PUT (обновление ресурса), PATCH (обновляет только указанные поля) и DELETE (удаление ресурса). Они оперируют с ресурсами, представленными в формате, таком как JSON или XML.
-
Слоистая архитектура: REST поддерживает разделение приложения на слои, где каждый слой выполняет определенные функции. Это способствует модульности, повторному использованию кода и облегчает масштабирование системы.
Методы POST и GET являются двумя основными методами HTTP-запросов.
GET: Используется для получения данных с сервера.
- Данные запроса передаются в URL в виде параметров (query string) после символа "?". Например: http://example.com/api?param1=value1¶m2=value2.
- Ограничение на объем передаваемых данных (обычно до 2048 символов).
- GET-запросы могут быть кэшированы браузером.
- Значения параметров видны в URL, что может повлечь уязвимости безопасности при передаче конфиденциальных данных.
POST: Используется для отправки данных на сервер для обработки.
- Данные запроса передаются в теле запроса.
- Нет ограничений на объем передаваемых данных.
- POST-запросы не кэшируются браузером.
- Значения параметров не видны в URL и не сохраняются в истории браузера, что делает их более безопасными для передачи конфиденциальных данных.
- Запрос можно сделать безопасным, шифруя данные с помощью https
- 405 метод не поддерживается (при попытке отправить GET вместо POST)
- 201 создано
- 204 empty content
- 409 Конфликт (повторная отправка тех же данных)
- 400 Bad Request
- 422 Unprocessable Entity сервер понял запрос, но не может обработать его из-за неверных данных
- 403 Forbidden
- 429 Too Many Requests
Использовать REST API - философия построение взаимодействия сервисов между собой. Основные понятия resources, stateless, methods (POST,GET,PUT,PATCH)
- Resources
- Использование существительных во множественном числе без использование на конце update/delete/insert за это будут отвечать методы /articles/:id/comments
- Версионирование v1/articles/:id/comments
- Фильтрация, сортировка и лимиты Использовать только существующий endpoint с get параметром v1/articles?title=Nokia&sort=+author,-dateTime&limit=100
- Methods CRUD
- GET - Read
- PUT - Update (Обновляет все поля в сущности, даже если их не передали)
- PATCH - Update (Обновит только одно поле)
- POST - Create
- DELETE - Delete
- HTTP code
- Клиентские
400 Bad request - для неправильного ввода клиентских данных
403 Forbidden - доступ запрещён
401 Unauthorized - не авторизован
404 Not found - не найден
- Request, response
- Json format
Использует протокол:
TLS (Transport Layer Security) или его предшественника SSL (Secure Sockets Layer), для шифрования данных между клиентом и сервером.