REST vs WebSocket
8 ianuarie 2019 4 min de citire
Cu câteva zile în urmă, Quora m-a „rugat” să răspund cuiva care a întrebat dacă „AWS API Gateway acceptă un protocol diferit de REST”. În ciuda erorii conceptuale din întrebare - cred că știți ce este - i-am răspuns foarte repede, dar Sergio va vorbi foarte curând și mai detaliat despre API Gateway. Așa că stați la curent! Problema este că această întrebare m-a inspirat să scriu postarea de astăzi și să fac o scurtă comparație între REST (HTTP) și WebSocket.

Mai mult decât o comparație „REST vs WebSocket”, este o comparație HTTP versus WebSocket (ws). Ei bine, după cum vă amintiți, REST (Representational State Transfer) este un model sau stil de proiectare a arhitecturii și nu un protocol de transport. Protocolul HTTP este o implementare a arhitecturii REST.
Foarte scurt și rezumat - puteți găsi mai multe informații aici sau aici, un API REST este un set de reguli care permit comunicarea între aplicațiile web. REST folosește protocolul HTTP și multe dintre caracteristicile sale ca parte a structurii sale API. De fapt, cineva a spus cu mult timp în urmă că „REST este web și web este REST”. Vei fi de acord sau nu, dar astăzi este cel mai folosit stil.:)
Un Websocket este un protocol de comunicație care oferă canale de comunicare „full-duplex” prin aceeași conexiune TCP. Este același concept al soclurilor clasice UNIX, dar pe web și cu ideea de a facilita transferul de date în timp real de la server și la server. Fiind o comunicare bidirecțională, serverul poate trimite informațiile direct clientului în momentul conectării. După cum știți bine, REST nu o face cu ușurință. Deși pe piață există cadre foarte puternice care știu să facă față REST-ului și backend-urilor în timp real.
După cum am mai spus, REST este un stil de arhitectură și WebSocket un protocol, prin urmare este logic dacă comparăm HTTP cu WebSocket. Acestea sunt câteva dintre diferențe: