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.
Īn cazul unei
conexiuni mai complexe, o situatie comuna ar putea fi cea din figura
urmatoare:
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.)
|