Webhooks vs. WebSockets: com es diferencien?

Webhooks vs. WebSockets: com es diferencien?

Els webhooks i els WebSockets són dues tecnologies de desenvolupament web que la gent sovint confon. Moltes aplicacions web modernes fan ús tant de Webhooks com de WebSockets. Encara que són força diferents, els Webhooks i els WebSockets aborden la comunicació a les aplicacions web.





Aleshores, què són els Webhooks i els WebSockets? Quines són les coses que els fan diferents?





Què són els webhooks i com funcionen?

Podeu pensar en un webhook com una 'sol·licitud HTTP activada per esdeveniments'. Què vol dir això? Un webhook és una acció de devolució de trucada HTTP desencadenada normalment per un esdeveniment en un servidor. Això no és tot, normalment envia dades mitjançant un URL preconfigurat a un altre servidor. Això neix la idea que els Webhooks siguin un mitjà de comunicació 'servidor a servidor'.





Per entendre millor el mecanisme de funcionament dels Webhooks, considereu una aplicació web que utilitzi l'API de Stripe per rebre pagaments. Sempre que un client fa un pagament, Stripe rep els diners, però la vostra aplicació no en té ni idea. Aquí és on entren els Webhooks. Considereu la imatge següent:

  Visualització de com funcionen els Webhooks

Stripe requereix que proporcioneu un URL de punt final de Webhook per enviar les dades de pagament del client al vostre servidor quan s'activa un nou esdeveniment de pagament. Aleshores, el vostre servidor rep les dades, hi fa operacions i desa les dades persistents a la base de dades.



Què són els WebSockets i com funcionen?

WebSocket és un protocol que normalment utilitzareu amb JavaScript . Estableix un canal de comunicació bidireccional, persistent i bidireccional. Ho fa en un sol connexió realitzada entre dos ports TCP d'un client (navegador) a un servidor. L'aplicació més popular de WebSockets és en aplicacions de xat com WhatsApp.

com comprovar si hi ha virus a l'iPhone

Tot i que els Webhooks es basen en HTTP (és a dir, fan ús del protocol HTTP), WebSocket és un protocol sencer basat en TCP igual que HTTP. Els WebSockets poden ser molt beneficiosos quan es treballa amb aplicacions de transmissió de dades de client i servidor de baixa latència.





Podeu aconseguir una latència baixa amb una connexió WebSocket perquè es manté oberta entre transaccions, a diferència de l'HTTP predeterminat. Això permet que les dades flueixin perfectament entre ambdues parts.

  visualització de websockets

Abans de WebSockets, els desenvolupadors utilitzaven diversos mètodes per obtenir dades en temps real mitjançant HTTP. Tot i que fa temps que hi són, pateixen limitacions.





Per exemple, una enquesta llarga requereix que el client enviï sempre una nova sol·licitud al servidor en un interval de temps especificat. Això vol dir que quan hi ha dades noves al servidor, les retorna. Però si no n'hi ha, la sol·licitud és efectivament desaprofitada.

A diferència dels Webhooks, qualsevol extrem d'una connexió WebSocket pot enviar dades a l'altre. Aquesta és una de les raons per les quals WebSockets ofereix un gran avantatge de velocitat, especialment quan les dades s'envien des del servidor al client. Les aplicacions que utilitzen WebSockets haurien de beneficiar-se d'una baixa latència quan obtenen dades del servidor.

com es corregeix el codi d'error 0xc000000e a Windows 10

També podeu utilitzar WebSockets a través de TLS, igual que HTTP. Això assegura les dades que transmets, ajudant a mitigar-les atacs de l'home del mig . Fins i tot una connexió persistent es mantindrà segura amb aquest enfocament. No us haureu de preocupar perquè els atacants roben dades o les comunicacions les corrompin.

Quan hauríeu d'utilitzar Webhooks?

Els Webhooks i els WebSockets tenen com a objectiu implementar millors mitjans de comunicació en temps real a través del web. Tanmateix, ho fan de maneres totalment diferents. Sovint pot ser un repte decidir quina d'aquestes dues tecnologies heu d'utilitzar a la vostra aplicació. Hauríeu de prestar molta atenció als seus punts forts i febles per veure quina s'adapta millor als vostres requisits.

Aleshores, quan hauríeu de triar Webhooks sobre WebSockets?

on puc aconseguir que la pantalla del meu iPhone es solucioni econòmicament
  • Quan consumeixes una API que no en tens. Considereu l'exemple de Stripe de la il·lustració anterior del Webhook. Stripe és un proveïdor de serveis de pagament i la vostra aplicació només es pot construir a partir de la seva API. No teniu control sobre Stripe, de manera que no podeu crear un servidor WebSocket al final. En casos com aquest, hauríeu d'utilitzar Webhooks.
  • Si la vostra aplicació és un servidor que necessita comunicar-se amb un altre servidor, el millor és utilitzar Webhooks. Aquest és el sistema de comunicació ideal 'servidor a servidor'.
  • Els webhooks no són bidireccionals ni persistents. Només hauríeu d'utilitzar Webhooks quan la vostra aplicació no espera dades de resposta al mateix canal.
  • També cal destacar que els Webhooks són el camí ideal per a les operacions de servidor que s'executen com a funcions sense servidor. Alguns exemples inclouen AWS Lambda i les funcions del núvol de Google.

Podeu experimentar amb Webhooks activats webhook.site . Aquest lloc us permet veure com seran les dades que un Webhook envia a la vostra aplicació. És molt útil entendre la naturalesa de la comunicació d'un Webhook abans d'intentar implementar un punt final a la vostra aplicació.

Quan hauríeu d'utilitzar WebSockets?

Les aplicacions en temps real, els sistemes de notificació i els sistemes d'intercanvi de dades en directe són algunes de les aplicacions habituals de WebSockets. Tenint en compte que amb WebSockets, el canal de connexió ha d'estar sempre obert, aquest protocol només s'ha d'utilitzar quan el cost valgui la pena.

  • Hauríeu d'utilitzar WebSockets quan la vostra aplicació intercanvia dades contínuament entre el client i el servidor. Per exemple, en una aplicació per compartir la ubicació en directe, la ubicació d'un usuari s'actualitza contínuament tant al servidor com al client mentre es mou. WebSockets ho fan possible.
  • En aplicacions de comunicació multimèdia com WhatsApp, WebSocket és el protocol de comunicació ideal. Permet un intercanvi de dades bidireccional molt ràpid, que és fonamental per a aquest tipus d'aplicacions.
  • També hauríeu d'utilitzar WebSockets en aplicacions que implementin fonts en temps real, com ara Livescore. Aquest lloc web comparteix actualitzacions de partits de futbol en directe a mesura que succeeixen en temps real. Però ho fa sense necessitat de fer noves sol·licituds ni requerir que actualitzeu el navegador.
  • Altres casos en què hauríeu d'utilitzar WebSockets inclouen aplicacions de transmissió de vídeo/àudio en directe, sistemes de notificació en directe i jocs multijugador en temps real. També són útils en aplicacions d'edició col·laborativa com Google Docs, Notion, etc.

Els webhooks i els WebSockets són diferents

És evident que, tot i que els Webhooks i els WebSockets resolen problemes similars, no són els mateixos i cadascun té els seus casos d'ús particulars. Els webhooks són devolucions de trucada unidireccionals, activades per esdeveniments, basades en el protocol HTTP. La tecnologia WebSocket és un protocol autònom, que permet l'intercanvi bidireccional de dades sense sol·licituds.

És important identificar sempre la vostra necessitat a l'hora de crear una aplicació per evitar malgastar recursos. En alguns casos, hauríeu de preferir els Webhooks perquè de vegades els WebSockets poden tenir un cost prohibitiu. Assegureu-vos que només els feu servir quan sigui necessari.