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