Step1
July 12, 2022

HTTP/HTTPS/RPC/REST

HTTP/HTTPS/RPC/REST

Мир стремится к совершенствованию технологий. Сначала был web1 – это одностраничные, статичные сайты. Они были примитивными и простыми, но это была новейшая технология. Далее web1 сменился на web2 – многостраничные сайты со сложным интерфейсом и необычными видами. Web2 стал неотъемлемой частью нашей жизни – он повсюду! Жизнь без него не кажется нам возможной, но мир меняется. Приходит новый вид интернета – web3.  Web1 использовал HTTP, web2 использует HTTPS, но что будет дальше? Чтобы понять что будет дальше, надо понять что есть сейчас. Именно об этом будет статья.

HTTP / HTTPS:
HTTPS и HTTP – два протокола, с помощью которых передается информация в Интернете. Они предназначены для передачи текстовых данных между клиентом и сервером, а главное различие между ними – в наличии и отсутствии шифрования передаваемых данных.

HTTP (от англ. HyperText Transfer Protocol) ― это протокол передачи данных в интернете. С его помощью браузер получает информацию от сервера и показывает пользователю контент. Это первый протокол, который создали для работы в веб-пространстве.

HTTPS (от англ. HyperText Transfer Protocol Secure) ― защищённый протокол передачи данных в интернете. Это тот же протокол HTTP, но защищенный SSL-сертификатом.

На данный момент HTTP является устаревшим протоколом передачи данных, так как мир заботится о конфеденциальности личной информации пользователей. Протокол HTTP не обеспечивает защиту передаваемых данных — любая личная информация может быть перехвачена злоумышленниками, поэтому браузеры предупреждают об опасности страниц, использующих протокол HTTP

Преимущества HTTPS

  1. Безопасность. Ни вам, ни посетителям сайта не надо беспокоится о личных данных: номер карты, паспортные данные, история браузера под защитой.
  2. Положительно влияет на SEO-оптимизацию. Поисковые системы больше доверяют сайтам, которые работают по защищенному соединению. Они выше ранжируются в поисковой выдаче, чем незащищенные сайты.
  3. Вызывает доверие у посетителей. Пользователям важно, чтобы их личная информация не попала к третьи лицам, поэтому чаще выбирают сайты, которые работают по HTTPS-протоколу.
  4. RPC / REST:
  5. API (Application Programming Interface — программный интерфейс приложения, или интерфейс программирования приложений) — специальный протокол для взаимодействия компьютерных программ, который позволяет использовать функции одного приложения внутри другого.
  6. RPC:
    Удаленный вызов процедуры (Remote Procedure Call)  —  это спецификация, которая позволяет удаленно выполнять функцию в другом контексте. RPC расширяет понятие локального вызова процедуры, но помещает его в контекст HTTP API.
    Клиент вызывает удаленную процедуру, сериализует параметры и дополнительную информацию в сообщении и отправляет это сообщение на сервер. Получив сообщение, сервер десериализует его содержимое, выполняет запрошенную операцию и отправляет результат обратно клиенту. Стаб сервера и стаб клиента берут на себя сериализацию и десериализацию параметров.
  7. Простота и понятность взаимодействий. RPC использует GET для получения информации и POST для всего остального. Механика взаимодействия между сервером и клиентом сводится к вызову конечной точки и получению ответа.

Легкость добавления функций. Получив новое требование для API, мы можем легко добавить другую конечную точку, выполняющую это требование: 1) написать новую функцию и перебросить ее на конечную точку, и 2) теперь клиент может попасть в эту конечную точку и получить информацию, соответствующую заданному требованию.

Высокая производительность. Легкие полезные нагрузки легко распределяются по сети, обеспечивая высокую производительность, что важно для общих серверов и параллельных вычислений, выполняемых в сетях рабочих станций. RPC способен оптимизировать сетевой уровень и сделать его очень эффективным в ситуации, когда различные сервисы каждый день обмениваются тоннами сообщений.

  1. REST API:

Самый популярный подход на данный момент. Используется такими поставщиками API, как, например, Google, Twitter и GitHub.

Когда мы говорим про REST, мы говорим про ресурсы. Ресурс — это объект, который может быть идентифицирован, назван, адресован или обработан в сети. REST представляет данные как ресурсы и использует стандартные HTTP-методы для представления транзакций создания, чтения, обновления и удаления этих ресурсов, то есть стандартные CRUD операции. По сути, все бизнес-сущности, которыми оперирует сервис, могут быть определены как ресурсы.

Основной принцип REST в том, что операции-функции резко ограничили и оставили только набор операций CRUD: Create — Read — Update — Delete. В этой модели все операции всегда применяются к некоторым данным. Имеющихся в CRUD операций достаточно для большей части приложений. Так как REST технологии в большинстве случаев подразумевают использование протокола HTTP, то команды CRUD отразились на команды HTTP (Post — Get — Put — Delete). Постоянно утверждается, что REST не обязательно привязан к HTTP. Но на практике повсеместно используется отражение сигнатур операций на синтаксис HTTP команд.

Ссылки для изучения:

https://docs.microsoft.com/ru-ru/azure/rtos/netx-duo/netx-duo-web-http/chapter1
https://journal.sweb.ru/article/v-chem-razlichiya-mezhdu-http-i-https

https://habr.com/ru/post/264181/

https://tproger.ru/articles/vybor-request-response-paradigmy-api-rest-rpc-ili-graphql/
https://selectel.ru/blog/http-https/