HTTP/REST

HTTP

HTTP - протокол прикладного уровня для передачи гипертекстовых документов и создан для связи между веб-браузерами и веб-серверами. Клиент-серверная модель.

Передача data через TCP/IP. TCP - транспортный протокол. Серверное ПО обычно использует TCP-порт 80.

Client ====> Proxy =====> Proxy ====> Server <==== <===== <==== Proxy ~ шлюзы(кэш) для выравнивания нагрузки.

  1. Открытие TCP соединения (отправка запроса, получение ответа)

  2. Отправка HTTP-сообщения Get /HTTP /1.1 HOST: сайт

  3. Чтение ответа HTTP /1.1 код состояния(200 ОК) Заголовки Тело ответа

  4. Закрытие или переиспользование.

Стандартные методы HTTP: GET, POST, PUT, CRUD, OPTIONS(HEAD).

Коды:

100-103 - Информационные 200-206 - Успешные 300-308 - Сообщение о перенаправлениях 400-417 - Ошибки(со стороны клиента) 500-505 - Серверные ошибки

REST

API - интерфейс программирования(взаимодействия) приложений

REST - представление данных в удобном для клиента формате. Основная идея - каждое обращение к сервису переводит клиентское приложение в новое состояние. REST - не протокол и не стандарт, а подход, архитектурный стиль проектирования API(SOAP протокол).

SOAP - XML. Принципы:

  • клиент-серверная архитектура;

  • любые данные - ресурс - однозначно определяется URL

  • использует стандартные методы HTTP(GET, POST, PUT, CRUD)

  • сервер не хранить состояние(сервер не отделяет один вызов от другого, не сохраняет все сессии в памяти)

  • передача данных в том же виде, что и сами данные

REST Full API - сервис, отвечающий принципам REST.

RESTFul vs RESTlike

Last updated