Kunder och servrar kommunicerar med en kombination av protokoll och tekniker, främst förlitar sig på ett
request-svar modell. Här är en uppdelning:
1. Upprättande av en anslutning:
* TCP (Transmission Control Protocol): Detta är det vanligaste protokollet för tillförlitlig kommunikation. Det skapar en dedikerad anslutning mellan klient och server, vilket säkerställer beställd och felkontrollerad leverans av data. Tänk på det som ett telefonsamtal - du skapar en anslutning innan du kan prata. "Three-Ways Handshake" används för att ställa in denna anslutning.
* UDP (användardatagramprotokoll): Detta är ett anslutningsfritt protokoll, vilket innebär att det inte skapar en dedikerad anslutning. Data skickas i paket och det finns ingen garanti för leverans eller beställning. Det är snabbare men mindre pålitligt, lämpligt för applikationer där en del paketförlust är acceptabelt (t.ex. strömning).
2. Kommunikationsprotokoll:
När en anslutning (eller brist på den i UDP:s fall) har fastställts definierar olika protokoll * formatet * och * som betydelse * av de utbytda data. Vanliga exempel:
* http (Hypertext Transfer Protocol): Används för webbläsning. Klienten (webbläsare) skickar förfrågningar (t.ex. `get /index.html`), och servern (webbserver) skickar svar (html, bilder etc.). Det är byggt på TCP.
* https (Hypertext Transfer Protocol Secure): Http över TLS/SSL, tillsätt kryptering för säker kommunikation.
* ftp (filöverföringsprotokoll): För att överföra filer.
* SMTP (Simple Mail Transfer Protocol): För att skicka e -postmeddelanden.
* Pop3/IMAP: Protokoll för att hämta e -postmeddelanden från en server.
* WebSockets: Ger en ihållande, dubbelriktad kommunikationskanal. Till skillnad från HTTP:s förfrågningsresponsmodell, möjliggör WebSockets realtid, tvåvägskommunikation. Används ofta i chattapplikationer och onlinespel.
* grpc: Ett högpresterande, open source Universal RPC-ramverk. Den använder protokollbuffertar för effektiv dataterialisering.
3. Dataformat:
Datautbytet måste vara i ett format som både klient och server förstår. Vanliga format inkluderar:
* Textbaserade format: Som JSON (JavaScript Object Notation) eller XML (Extensible Markup Language). Dessa är mänskliga läsbara men kan vara mindre effektiva än binära format.
* binära format: Som protokollbuffertar eller Apache Avro. Dessa är mer kompakta och snabbare att analysera än textbaserade format.
4. Begärningsresponscykeln (för TCP-baserade protokoll):
1. Kundförfrågan: Klienten initierar kommunikation genom att skicka en begäran till servern. Denna begäran anger vad klienten vill ha (t.ex. en webbsida, en fil etc.).
2. Serverbehandling: Servern tar emot begäran, bearbetar den (t.ex. hämtar data från en databas) och förbereder ett svar.
3. Serversvar: Servern skickar ett svar tillbaka till klienten. Detta svar innehåller begärda data eller ett felmeddelande.
4. klienthantering: Klienten får svaret och bearbetar det (t.ex. visar en webbsida, sparar en fil).
Sammanfattningsvis: Kunder och servrar kommunicerar genom att upprätta en anslutning (vanligtvis med TCP), använda ett kommunikationsprotokoll för att definiera meddelandeformatet, utbyta data i ett strukturerat format (t. De specifika protokollen och dataformat som används beror på applikationen.