Cum http funcționează

La mijlocul anilor '90, World Wide Web (WWW) a devenit foarte popular. Acesta este un set de protocoale și programe pentru Internet, care reprezintă informații într-un format hipertext. Famous browser-ul mozaic, creat la Centrul Național pentru Aplicații Supercomputer (NCSA), a fost primul browser web și a promovat popularizarea WWW. Web-ul a fost dezvoltat în 1989 la Laboratorul European de Fizică a Particulelor (CERN) de Timothy Berners-Lee. În prezent, Consorțiul World Wide Web (W3C) este responsabil pentru toate standardele legate de Web.







Pentru protocoalele de ambalare și de transfer de date utilizate în MIME Web (Multipurpose Internet Mail Extensions) și TCP / IP (Protocol de control al transmisiei / Internet Protocol), precum și altele, cum ar fi FTP și Telnet. Special conceput pentru indicii Web URL (Uniform Resource Locator), protocolul HTTP (Hypertext Transfer Protocol), limbajul HTML (Hypertext Markup Language) și interfața CGI (Common Gateway Interface).

Uniform Locator de resurse (URL-uri)

Toate acestea au fost disponibile înainte, dar aspectul adresei URL a simplificat foarte mult programele care oferă informații valoroase în mediul hipertext. Într-adevăr, înainte de epoca adresei URL, procesul de transferare a tuturor informațiilor despre server, fișier, protocol, utilizator și argumente a fost destul de incomod, mai ales pentru începători. Odată cu apariția adresei URL, întregul mecanism a devenit mult mai simplu.

Indicele de adrese URL cuprinde următoarele părți:

unde <схема> Este numele schemei (protocolul folosit, de exemplu http, ftp, etc.) și <специальное_имя> - numele într-un format care depinde de schema utilizată.

Multe adrese URL au următorul format:

<пользователь> Numele de utilizator este, dacă este necesar (de exemplu, pentru FTP fără înregistrare anonimă);

<пароль> - parola acestui nume de utilizator;

- numărul portului IP pentru conexiune (dacă nu este specificat, se utilizează valoarea standard pentru acest protocol);

<путь> - date referitoare la adresele URL, adesea o indicație a unui subdirector și a unui nume de fișier.

Pentru o pagină Web, adresa URL arată astfel:

Fragmentul http indică faptul că adresa URL utilizează protocolul HTTP;

www.fictionalcorp.com - numele serverului la care utilizatorul dorește să se conecteze;

/corpinfo/sales.html - subdirectorul și numele fișierului HTML care stochează pagina Web.

Mai jos sunt câteva scheme populare:

HTTP protocol HTTP

Protocolul https HTTP, criptat cu SSL (Secure Socket Layer)

ftp protocol FTP

știri Usenet știri

fișier Numele de fișiere ale unei anumite gazde

telnet Telnet Sesiune interactivă

O adresă URL mai scurtă - http: //www.fictionalcorp.com- indică „pagina principală“ a acestui server în cazul în care nu specifică în mod explicit numele fișierului, HTTP-servere utiliza valoarea prestabilită (de multe ori default.html sau index.html) .. URL-ul de mai sus poate fi convertit într-o formă mai explicită: http://www.fictiorialcorp.com/default.html.

Pentru FTP, se utilizează o sintaxă similară. Accesarea fișierului bar.txt al subdirectorului / ftp al serverului FTP ftp.fictionalcorp.com în limba URL este următorul:

ftp://ftp.fictionalcorp.com/foo/bar.txt

O adresă URL parțială sau relativă este una în care protocolul, gazda, portul sau calea nu este specificată, ci doar numele relativ al resursei. De exemplu, în cazul în care Web-site-ul http://www.fictionalcorp.com/piiblic/foo/bar.html se referă la bletch.html, nu este altceva decât o formă relativă de http://www.fictionalcorp.com/public/ foo / bletch.html.

În loc de un subdirector și un nume de fișier, adresa URL poate conține alte informații despre resursă. Deci, arata ca URL-ul pentru protocolul NNTP:

În general, în URL trebuie folosite numai caractere alfanumerice, deoarece cele mai multe caractere speciale sunt rezervate sau utilizarea lor directă este nesigură. Primele sunt: ​​";", "/", "?", ":", "@", "=", "". Simboluri nesigure - "<», «>"," "," "," "," "," "," | "", "" ","

Dacă numele resursei conține un caracter sau un caracter rezervat care nu aparțin US-ASCII, atunci numele trebuie codificat înainte de a fi utilizat în URL. La codificare, simbolul este înlocuit cu trei noi - un semn procentual (%) și două cifre hexazecimale reprezentând codul simbolului înlocuit.







Protocolul HTTP este modalitatea de bază și destul de simplă de a transfera date între serverul Web și client. Înainte de apariția Web și HTTP pentru transferul de fișiere pe Internet ca protocol I / O, cel mai des folosit FTP.

HTTP este un protocol I / O compact, rapid, care funcționează cu adrese URL și este destinat mediilor hypertext / hypermedia. Spre deosebire de FTP, acesta este un protocol fără state și are doar câteva comenzi (metode). Datorită utilizării MIME, HTTP se adaptează la multe formate de date și diferite sarcini de intrare / ieșire.

Protocolul HTTP - client-server care implementează modelul de solicitare / răspuns. Un client HTTP sau un agent personalizat (de obicei, un browser web) se conectează la serverul HTTP folosind o adresă URL și solicită o resursă, cum ar fi un document HTML.

Extensiile MIME sunt utilizate pentru încapsularea datelor în acest model. Structura datelor trimise între client și server seamănă cu e-mailul. Se compune din corpul mesajului și metadatele (anteturile mesajelor). HTTP transferă informații în format MIME. Metadatele conțin informațiile necesare pentru a transfera date între serverul HTTP și client. Cu toate acestea, HTTP permite un format binar, pe care MIME-ul obișnuit (datorită restricțiilor pe 7 biți ale gateway-urilor de e-mail) nu permite.

În sesiune, de regulă, clienții HTTP (browsere web) și serverele HTTP (servere Web) participă și, mai puțin frecvent, serverele proxy. randament recente ca un server de la un client si ca un client la un alt server, transferând cererea clientului original, printr-o poartă de acces (cum ar fi un firewall între intranetul companiei dumneavoastră și Internet).

În mod tradițional, clienții și serverele HTTP comunică prin portul 80 TCP / IP, care este rezervat în mod implicit pentru HTTP. Cu toate acestea, pot fi utilizate și alte porturi specificate în URL. În plus, rețineți că HTTP nu presupune utilizarea TCP / IP și funcționează bine cu alte protocoale de livrare garantate.

Un browser Web procesează adesea pagini web compuse din mai multe obiecte, de exemplu, documentul HTML în sine și mai multe imagini (GIF, JPEG, PNG etc.). Majoritatea clienților HTTP creează un singur fir (cu o conexiune la server) pentru a citi documentul inițial HTML și apoi mai multe fire (fiecare cu o conexiune separată la server) pentru a obține fișierele necesare. Conexiunea este stabilită la cererea clientului și este terminată după ce serverul răspunde.

Toate tranzacțiile HTTP au un format comun. Fiecare răspuns client și server are trei părți: un șir de interogare (răspuns), o secțiune antet și un corp. Clientul inițiază tranzacția după cum urmează:

GET / index.html HTTP / 1.0

Se folosește metoda GET, care utilizează cererea de versiune 1.0 HTTP pentru document index.html. Metodele HTTP sunt discutate mai detaliat mai jos.

2. Clientul trimite informații de antet (opțional) pentru a informa serverul despre configurația și datele despre formatele de documente pe care le poate primi. Toate informațiile despre antet sunt afișate pe rând, fiecare rând afișează numele și valoarea. De exemplu, următorul antet trimis de client conține numele și numărul versiunii sale, precum și informații despre unele tipuri de documente preferate pentru client:

User-Agent: Mozilla / 4.05 (WinNT; 1)

Acceptați: imagine / gif, imagine / x-xbitmap, imagine / jpeg, imagine / pjpeg, * / *

Titlul se încheie cu un șir gol.

3. Trimiterea cererii și a anteturilor, clientul poate trimite și date suplimentare. Aceste date sunt utilizate în principal de acele programe CGI care utilizează metoda POST. Clienții (de exemplu, Netscape Navigator-Gold) pot, de asemenea, să le folosească pentru a plasa pagina editată înapoi pe serverul Web.

Serverul răspunde solicitării clientului după cum urmează:

1. Prima parte a răspunsului la server este o linie de stare care conține trei câmpuri: versiunea HTTP, codul de stare și descrierea acestuia. Câmpul de versiune conține numărul versiunii HTTP pe care serverul o utilizează pentru a trimite răspunsul.

Codul de stare este un număr de trei cifre care indică rezultatul procesării de către server a solicitării clientului. Descrierea care urmează codului de stare este pur și simplu un text care poate fi citit de om și care explică codul de stare. De exemplu, bara de stare

indică faptul că serverul pentru răspuns utilizează versiunea de HTTP 1.0. Codul de stare 200 indică faptul că cererea clientului a avut succes, iar datele solicitate vor fi transmise după anteturi.

2. După linia de stare, serverul transmite clientului informații despre antet, conținând informații despre serverul însuși și despre documentul solicitat. Mai jos este un exemplu de titlu:

Linia goală termină antetul.

3. Dacă cererea clientului are succes, atunci datele solicitate sunt trimise. Aceasta poate fi o copie a fișierului sau rezultatul executării programului CGI. În cazul în care cererea clientului nu poate fi satisfăcută, se transmit date suplimentare sub forma unei explicații clare către utilizator cu privire la motivele pentru care serverul nu a putut să îndeplinească această solicitare.

În HTTP 1.0, serverul trimite datele solicitate clientului și tranzacția este considerată completă dacă nu este furnizat antetul Connection: Keep Alive. În HTTP 1.1, serverul nu rupe conexiunea în mod implicit, iar clientul poate trimite alte cereri. Deoarece multe documente sunt încorporate în alte documente - imagini, cadre, aplicații etc. acest lucru economisește timp și costuri pentru client, care altfel ar trebui să se conecteze la același server de mai multe ori pentru a obține o singură pagină. Astfel, în HTTP 1.1, o tranzacție poate cicla în mod repetat până când clientul sau serverul închide explicit conexiunea.

HTTP nu stochează informațiile despre tranzacții, așa că în următoarea tranzacție trebuie să începeți din nou. Avantajul unei astfel de reguli de interacțiune este că serverul HTTP poate servi mult mai mulți clienți într-o anumită perioadă de timp, deoarece costurile suplimentare pentru urmărirea sesiunilor de la o conexiune la alta sunt eliminate. Există, de asemenea, un dezavantaj: pentru stocarea informațiilor despre tranzacții, programele mai complexe CGI ar trebui să utilizeze câmpuri de intrare ascunse sau mijloace externe, cum ar fi "cookie-urile" Netscape.







Articole similare

Trimiteți-le prietenilor: