Elementele conexiunilor în spatiul WWW
În cazul cel mai simplu, legatura dintre client si server se realizeaza prin intermediul unei singure conexiuni. De foarte multe ori însa, este posibil sa existe mai multi inte 949i86j rmediari în conexiune. Acestia pot fi de trei feluri: proxy, gateway sau tunnel.
Un proxy este un intermediar sofisticat: el primeste cererile adresate unei resurse identificate printr-un URI, rescrie anumite parti ale mesajului sau chiar tot mesajul, dupa care va transmite mesajul modificat catre serverul adresat initial. Cu aceasta ocazie el se si substituie clientului initial: raspunsul îi va veni tot lui, iar proxy-ul va face probabil o rescriere a mesajului de raspuns catre client. Dinspre server, nu se mai "vede" cine este clientul adevarat: toti clientii ce trec prin proxy sînt "ascunsi", serverul primind numai cereri de la proxy. Acesta poate face în plus, într-un singur loc, o serie de verificari, relative la autentificare, securizare etc., care ar fi greu de implementat pe multe si diverse masini - toate calculatoarele client care trec prin acel proxy. Un proxy reprezinta înspre restul lumii un grup de clienti, putîndu-i trata pe acestia diferentiat.
Un gateway este similar unui proxy, dar pe partea de server. Este un receptor, un fel de "camera de primire" pusa în fata unui server sau a unui grup de servere. Serverele "de dupa gateway nu se vad în restul lumii - ele sînt, toate, reprezentate de gateway. Cererile sosite la gateway sînt dirijate catre serverele corespunzatoare cererii (sau catre serverul cel mai liber, de exemplu, daca faptul ca exista mai multe servere vine din dorinta de a disponibiliza mai multa putere de calcul). De regula are loc si o conversie de protocol, înspre protocolul pe care îl cunoaste sau îl foloseste un anumit server, care nu mai este obligat în felul acesta sa "cunoasca" http.
Un tunel este un intermediar neinteligent: el transporta date pe care nu le întelege sau interpreteaza în nici un fel între doua conexiuni. Nu are loc nici un fel de schimbare a mesajelor, decît temporar, trecînd printr-o forma intermediara, între intrarea în si iesirea din tunel; continutul mesajelor nu se schimba.
![]() |
O cerere sau un raspuns care parcurge drumul din figura va traversa patru conexiuni. Acest lucru trebuie avut în vedere; exista unele optiuni relative la comunicatie care se refera numai la primul vecin, daca acesta nu se afla în spatele unui tunel, altele care se refera numai la punctele finale ale conexiunii iar altele care se pot referi la toate conexiunile de pe traseu.
Iar daca diagrama simplificata de mai sus este lineara, nu trebuie uitat faptul ca fiecare participant poate fi angajat simultan în comunicatii multiple. Proxy-ul din figura poate lucra deodata cu multi clienti, care se adreseaza la mai multe servere si care pot fi gasiti prin conexiuni diferite.
Oricare dintre participantii la conexiune cu exceptia tunelului poate face uz de un cache intern care sa scurteze drumul unui ciclu cerere/raspuns. Exemplul anterior ilustreaza si drumul unei cereri care s-a mai facut o data de catre client, dar se afla înca în cache-ul proxy-ului:
Desigur, nu toate raspunsurile se preteaza la a fi pastrate un timp în cache (pe ideea ca "poate mai cere cineva acelasi lucru"); pe de alta parte, cererile de la clienti pot formula anumite optiuni specifice relative la cache ("nu accept decît raspunsuri de la server direct", "nu accept raspunsuri memorate mai mult de x minute", etc.)
|