Sunteți pe pagina 1din 6

Hypertext Transfer Protocol

Hypertext Transfer Protocol (HTTP) este metoda Transferul datelor n combinaie cu o cerere pentru
cea mai des utilizat pentru accesarea informaiilor n o resurs (HTTP-metoda GET)
Internet care sunt pstrate pe servere World Wide Web
Transferul datelor n combinaie cu o cerere special
(WWW). Protocolul HTTP este un protocol de tip text,
(HTTP-metoda POST)
ind protocolul implicit al WWW. Adic, dac un URL
nu conine partea de protocol, aceasta se consider ca -
Datele transferate vin deseori %-codate. La metoda GET
ind http. HTTP presupune c pe calculatorul destinaie
se utilizeaz partea de cerere Uniform Resource Identi-
ruleaz un program care nelege protocolul. Fiierul tri-
ers (URI) cu simbolul ?. Aceast metod se utilizeaz
mis la destinaie poate un document HTML (abrevia-
pentru a transfera o list de parametri, pe care partea opu-
ie de la HyperText Markup Language), un ier grac,
s trebuie s o ia n considerare la prelucrarea cererii.
de sunet, animaie sau video, de asemenea un program
executabil pe server-ul respectiv sau i un editor de text. Deseori aceast list cuprinde perechi de valori separate
Dup clasicarea dup modelul de referin OSI, proto- prin semnul &, care sunt alctuite din numele parame-
colul HTTP este un protocol de nivel aplicaie. Realizarea trului, semnul = i valoarea parametrului. Rareori se mai
i evoluia sa este coordonat de ctre World Wide Web utilizeaz i semnul ; pentru separarea nregistrrilor lis-
Consortium (W3C). tei [1].
Exemplu: la pagina de start de la Wikipedia.ro utiliza-
torul introduce n cmpul de cutare termenul pisici,
alege categoria articole i apas butonul de cutare.
1 Modul de funcionare Atunci browserul trimite urmtoarea cerere la server:
GET /wiki/special:Search?search=pisici&go=articol
HTTP ofer o tehnic de comunicare prin care pagini-
HTTP/1.1 Host: ro.wikipedia.org ...
le web se pot transmite de la un computer aat la dis-
tan spre propriul computer. Dac se apeleaz un link Serverului Wikipedia i sunt transmise dou perechi de
sau o adres de web cum ar http://www.example.com, valori: Argument Valoare search pisici go articol
atunci se cere calculatorului host s aeze o pagin web Perechile de valori se transmit sub forma
(index.html sau altele). n prima faz numele (adre-
sa) www.example.com este convertit de protocolul DNS Argument1=valoare1&Argument2=valoare2
ntr-o adres IP. Urmeaz transferul prin protocolul TCP iar cu ? se ataeaz pagina. Astfel serverul a c uti-
pe portul standard 80 al serverului HTTP, ca rspuns la lizatorul dorete s vad articole despre pisici. Serverul
cererea HTTP-GET. Informaii suplimentare ca de ex. prelucreaz cererea, dar nu trimite un ier ci redirectea-
indicaii pentru browser, limba dorit .a. se pot aduga z browserul cu un Location-Header spre pagina dorit:
n header-ul (antetul) pachetului HTTP. n urma cererii
HTTP-GET urmeaz din partea serverului rspunsul cu HTTP/1.0 302 Moved Temporarily Date: Fri, 13 Jan
datele cerute, ca de ex.: pagini n (X)HTML, cu ie- 2008 15:12:44 GMT Location: http://ro.wikipedia.org/
re ataate ca imagini, iere de stil (CSS), scripturi (Ja- wiki/pisici ... Browserul execut indicaia i, pe baza no-
vascript), dar pot i pagini generate dinamic (SSI, JSP, ilor informaii, emite o nou cerere: GET /wiki/pisici
PHP i ASP.NET). Dac dintr-un anumit motiv informa- HTTP/1.1 Host: ro.wikipedia.org ... Serverul rspunde
iile nu pot transmise, atunci serverul trimite napoi un i ofer pagina cu articole despre pisici:
mesaj de eroare. Modul exact de desfurare a acestei ac- HTTP/1.0 200 OK Date: Fri, 13 Jan 2008 15:12:48
iuni (cerere i rspuns) este stabilit n specicaiile HT- GMT Last-Modied: Tue, 10 Jan 2008 11:18:20 GMT
TP. Content-Language: ro Content-Encoding: gzip Content-
Type: text/html; charset=utf-8
.........ZKs..>.-[K!luV*
3.r`+.Fx! ..7t."9.A.
2 Transferul argumentelor
Partea de date este mai lung i de necitit din cauza com-
Deseori utilizatorul dorete s transmit informaii spe- presiei gzip.
ciale la website. Aici HTTP pune la dispozitie dou po- n cazul unei cereri POST variabilele nu se a n URI,
sibiliti: ci n partea body:

1
2 3 ERORI DE HTTP

POST /wiki/special:Search HTTP/1.1 Host: 202 - acceptat:


ro.wikipedia.org Content-Type: application/x-www- Cererea a fost acceptata pentru procesare, dar
form-urlencoded Content-Length: 24 aceasta din urm nu a fost terminat complet.
search=pisici&go=articol Scopul acestui mesaj este de a permite unui
server s accepte cereri de la ali utilizatori, f-
Serverul rspunde astfel : HTTP/1.0 302 Moved Tempo- r a cere conexiunii clientului s insiste pn
rarily Date: Fri, 13 Jan 2008 15:32:43 GMT Location: ce procesul/cererea e complet.
http://ro.wikipedia.org/wiki/pisici
203 - informaie neautorizat:
Informaia returnat/revenit nu e denitiv
3 Erori de HTTP ca ind din server-ul principal, ci e aduna-
ta/receptionata de la un server local.
Erorile de HTTP sunt clasicate n 5 clase (categorii).
Acestea sunt (pentru ecare clasa sunt date cteva dintre 204 - fara continut:
erorile coninute): Server-ul a indeplinit cererea si nu e nevoit
sa intoarca raspunsul, dar ar dori sa raspunda
printr-o informaie recent, gen meta.
1xx - erori informaionale: aceast clas a status-
ului indic un rspuns provizoriu al serverului i
205 - coninut refcut:
conine numai linia de status (de rspuns) sau alte
Cererea a fost ndeplinita i ar trebui ca
aplicaii opionale. Nu sunt aplicaii necesare pen-
browser-ul s poat modica/reseta modul de
tru acest clasa de rspuns/status. Aceste status-uri
vizualizare a documentului ce a cauzat aceast
pot ignorate.
cerere ctre server.

100 - continu: 206 - coninut parial:


Utilizatorul ar trebui s i continue cere- Serverul a ndeplinit parial cererea de primire
rea/aciunea. Acest rspuns provizoriu este fo- de la surs.
losit pentru a informa utilizatorul c partea ini-
ial a cererii a fost receptat i c deocamdat
3xx - redirectri: aceast clas de rspuns/status
nu a fost refuzat de server. Utilizatorul ar tre-
indic faptul c aciunile urmtoare vor trebui f-
bui s continue i s ignore acest rspuns.
cute de browser pentru a putea ndeplinita cere-
rea. Cererea ar putea direcionat de browser f-
101 - schimbare protocol: r a interaciona cu utilizatorul dac i numai dac
Server-ul nelege i are intenia de a de a n- metoda folosit n cea de a doua cerere este Pri-
deplini cererea utilizatorului, rspunnd prin mit/recepionat sau Direcionat/condus.
aceast eroare c pri ale server-ului sunt
n proces de schimbare/mutare. Server-ul va 300 - diferite/multiple alegeri:
schimba protocolul imediat dup ce rspunsul Sursa cererii corespunde unor seturi de des-
pentru linia 101 va terminat. Protocolul ar crieri, ecare cu locaii specice, iar browser-
trebui schimbat doar n momentul n care acest ul - dat ind negocierea informaiei, prime-
lucru este avantajos i se permite. te rspunsul astfel nct utilizatorul/browser-ul
s poat alege modul dorit astfel nct redirec-
2xx - rspuns reuit: clasa de rspuns/status ce in- tarea s e spre acea locaie. n cazul n care
dic utilizatorului c cererea a fost primit, neleas cererea a fost de tip Condus/trimis, rspun-
i acceptat cu succes. sul ar trebui s includ o intrare cu lista carac-
teristicilor i locaiilor de unde utilizatorul sau
browser-ul poate alege sursa cea mai apropiat.
200 - ok:
Aceast cerere a fost executat cu succes. In-
301 - modicat/mutat permanent:
formaia a revenit cu un rspuns pozitiv, indi-
Cererii i-a fost atribuite o surs nou i perma-
ferent de modul n care s-a fcut cererea.
nent URI iar cererile urmtoare ar trebui s
foloseasc una din sursele returnate URI. Dac
201 - creat/realizat: acest mesaj/cod este primit ca rspuns al unei
Cererea a fost ndeplinit avnd ca rezultat cre- cereri tip Primit/recepionat sau Direcio-
area unui nou rezultat. Noul rezultat poate nat/condus, browser-ul nu trebuie s redirec-
referit/raportat de ctre URI-uile napoiate la tioneze automat cererea, doar dac nu poate
intrarea rspunsului. conrmat de ctre utilizator.
3

302 - gsit: ctre server din cauza unei sintaxe grei-


Sursa cererii este temporar pe un alt URI. n te/incomplete. Utilizatorul ar trebui s nu re-
cazul n care redirectarea ar putea schimba- pete cererea fr ca aceasta s suporte modi-
t ocazional, utilizatorul ar trebui s foloseas- cri.
c n continuare cererea URI (Request-URI) n
cazul unor cereri ulterioare. 401 - neautorizat:
Dac mesajul/statusul 302 este recep- Cererea necesit autenticarea/nregistrarea
ionat ca rspuns al unei cereri alta dect utilizatorului. Rspunsul trebuie s includ
Primit/recepionat sau Direcionat/condus, WWW - cmp de autenticare coninnd o
browser-ul nu trebuie s redirecteze automat somaie aplicabil utilizatorului. Utilizatorul
cererea dac aceasta nu poate conrmat de poate repeta cererea. Dac cererea deja in-
crte utilizator. cludea cmpul de autorizare, atunci raspunsul
401 indic faptul c autorizarea a fost refuzat.
303 - vezi alta surs: Dac rspunsul 401 conine aceeai somaie ca
Rspunsul cererii poate gsit sub un diferit rspuns principal iar browser-ul a executat au-
URI i ar trebui s e recepionat folosind me- tenticarea cel puin o dat, atunci utilizatorul
toda Primit/recepionat de la acea surs. ar trebui s i se prezinte intrarea dat n rs-
puns, din moment ce aceasta include informaii
304 - nemodicat: relevante.
n cazul n care clientul a efectuat o cerere de
tip Primit/recepionat i accesul este permis, 402 - necesit plata:
dar documentul nu a fost modicat, serverul ar Rezervat pentru utilizare ulterioar.
trebui s rspund cu acest mesaj/status.
403 - interzis:
Serverul a neles cererea, dar refuz s o nde-
305 - folosete proxy:
plineasc. Autorizarea nu ajut n nici un caz,
Cererea trebuie accesat printr-un proxy dat de
iar cererea nu ar mai trebui repetata.
ctre cmpul de locaie. Acesta este dat de c-
tre URI. Beneciarul va repeta acest unic ce-
404 - negsit:
rere prin intermediul unui proxy. Rspunsul
Serverul nu a gsit nimic care s corespund
305 va generat doar de ctre serverul de ori-
cererii URI. Nu se dau indicaii despre condiia
gine.
temporar sau permanent.
306 (nefolosit):
405 - metod nepermis:
Acest mesaj/status a fost folosit ntr-o vesiune
Metoda specicat n linia de cerere (Request-
anterioar a specicaiilor deci nu mai este fo-
Line) nu este permis de ctre sursa identicat
losit, el ind reinut.
dup URI-ul cerut.

307 - redirectare temporar: 406 - neacceptat:


Sursa cerut se a temporar la un diferit URI. Sursa identicat de cerere este capabil s ge-
Din moment ce redirectarea poate modica- nereze doar intrri care au coninut specic ne-
ta ocazional, utilizatoarul ar trebui s continuie acceptat de ctre condiiile de acceptare trimi-
s foloseasc URI-ul cerut pentru viitoarele ac- se prin cerere.
iuni.
407 - autenticare prin proxy:
4xx - erori ale utilizatorilor: aceast clas de me- Mesajul este similar celui 401, dar indic situ-
saje/statusuri este folosit n cazurile n care utili- aia n care utilizatorul trebuie s se autentice
zatorul ar putea grei formularea cererii. Excep- prin proxy.
ia ind rspunsurule pentru cererile tip Direcio-
nat/condus, atunci serverul ar trebui s conin o 408 - cerere expirat:
intrare cu o explicaie a situaiei erorii i dac e o Utilizatorul nu a fcut cererea n timpul n ca-
eroare temporar sau pemanent. Aceste rspunsuri re serverul era pregtit sa o atepte. Se poate
sunt aplicabile pentru orice fel de cerere. Browser- repeta cererea fr modicri prealabile.
ele ar trebui s arate orice intrare cerut de utiliza-
tor. 5xx - erori de server: rspunsurile/status-urile ce
ncep cu unitatea/cifra 5 indic cazurile n care ser-
400 - cerere greit: verul e contient de greelile produse sau e incapa-
Cererea nu a putut neleas/perceput de bil s execute cererea. Excepie facnd rspunsul
4 5 METODE

unei cereri Direcionat/condus, serverul ar trebui, 3. HTTP/1.1 versiune de mbuntire i reparare a


n acest caz sa includ o aare cu o explicaie a si- neajunsurilor versiunilor anterioare.
tuaiei de eroare, e c e temporara sau permanent.
n prezent se utilizeaz dou versiuni ale protocolului,
500 - eroare intern de server: HTTP/1.0 i HTTP/1.1. La versiunea HTTP/1.0 se sta-
Server-ul a ntmpinat o condiie neateptat i bilete o nou conexiune TCP naintea cererii, iar du-
o previne spre a putea ndeplini cererea. p transmiterea rspunsului conexiunea trebuie nchis.
Astfel dac un document HTML cuprinde 10 imagini,
501 - nendeplinit/nerecunoscut: vor necesare 11 conexiuni TCP, pentru ca pagina s
Server-ul nu poate suporta funcionalitatea ce- e aat complet (n browser). La versiunea 1.1 se pot
rut pentru a putea ndeplini cererea. Aces- emite mai multe cereri i rspunsuri pe aceeai conexiu-
ta este rspunsul specic n cazurile n care ne TCP. Astfel pentru documentul HTML cu 10 imagini
server-ul nu recunoate metoda de cerere i este necesar doar o singur conexiune TCP. Deoarece -
nu e capabil s o suporte indiferent de mij- datorit algoritmului Slow-Start - viteza conexiunii TCP
loc/resurs. este la nceput mic, dar acum el e necesar doar o singur
dat, se scurteaz semnicativ durata total de ncrcare
502 - poart/ieire greit: a paginii. La aceasta se adaug i faptul c versiunea 1.1
Server-ul, n timp ce ncerca s se comporte poate relua i continua transferuri ntrerupte.
ca o poart/ieire sau ca un proxy, a recepio- La HTTP se pierd informaiile cererilor vechi (deci este
nat un rspuns invalid de la un server de dea- un protocol fr reinerea strii). Prin utilizarea de cooki-
supra/anterior n ncercarea de a ndeplini ce- uri n header, se pot realiza ns aplicaii care pot utiliza
rerea. informaii de stare (opiunile utilizatorului din sesiunea
actual, co de cumprturi .a.). Chiar i o recunoa-
503 - serviciu nedisponibil: tere a utilizatorului este astfel posibil. n mod normal
n prezent server-ul nu poate s se ocupe de ce- se pot citi informaiile transmise care parcurg reeaua pe
rerile trimise din cauza unei suprancrcri sau computere i rutere. Prin HTTPS transferul se poate i
a serviciilor de ntreinere a server-ului ce au cripta.
loc n acel moment. Aceasta este o stare tem- Versiunea cea mai recent se poate utiliza n chat-uri prin
porar i n curnd va remediat. utilizarea MIME-tip-ului multipart/replace, care renno-
iete complet coninutul ferestrei browser-ului. Noua ver-
504 - poart/ieire expirat: siune permite pe lng preluarea datelor, i transmiterea
Server-ul, n timp ce ncerca s se comporte lor la server. Cu ajutorul metodei PUT web-designerii
ca o poart/ieire sau ca un proxy, nu a primit pot s-i publice paginile web pe webserver prin Web-
un rspuns la timp de la serverele de deasu- DAV, iar prin metoda DELETE ei pot chiar i terge
pra/anterioare lui specicat de URI (ex. HT- pagini de pe server.
TP, FTP, LDAP) sau de la un server auxiliar
De asemenea, HTTP/1.1 mai ofer metoda TRACE
(ex. DNS) necesar accesrii n ncercarea de a
prin care se poate urmri calea spre webserver, i veri-
termina/ndeplini cererea.
ca dac datele au fost corect transferate. Astfel se poate
urmri calea prin diferite proxi-uri spre webserver, echi-
505 - versiunea HTTP nu e suporta- valent cu un traceroute la nivel aplicaie.
t/susinut:
Serveru-l nu suport sau refuz s suporte ver-
siunea de protocol a HTTP ce a fost folosit n
formularea cererii. Server-ul sugereaz c e in- 5 Metode
capabil s completeze/termine cererea folosind
aceeai versiune cu cea a clientului. Metodele disponibile sunt :

1. GET: este cea mai folosit metod, ind utilizat


4 Versiuni atunci cnd serverului i se cere o resurs.

1. HTTP/0.9 - prima versiune realizat de Tim 2. HEAD: se comport exact ca metoda GET, dar ser-
Berners-Lee i echipa sa. Aceast versiune este verul returneaz doar antetul resursei, ceea ce per-
foarte simpl, dar cu numeroase neajunsuri, ind re- mite clientului s inspecteze antetul resursei, fr a
pede nlocuit de alte versiuni; nevoit s obin i corpul resursei.

2. HTTP/1.0 versiune introdus n 1996 prin 3. PUT: metoda este folosit pentru a depune docu-
RFC1945, a adus numeroase mbuntiri; mente pe server, ind inversul metodei GET.
5

4. POST: a fost proiectat pentru a trimite date de in-


trare ctre server.
5. DELETE: este opusul metodei PUT.

6. TRACE: este o metod folosit de obicei pentru di-


agnosticare, putnd da mai multe informaii despre
traseul urmat de legtura HTTP, ecare server pro-
xy adugndu-i semntura n antetul Via.

7. OPTIONS: este folosit pentru identicarea capa-


citilor serverului Web, nainte de a face o cerere.

8. CONNECT: este o metod folosit n general de


serverele intermediare.

6 Exemplu
Cererea clientului:
GET / HTTP/1.1 Host: www.example.com
Rspunsul serverului:
HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34
GMT Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Last-Modied: Wed, 08 Jan 2003 23:11:55 GMT Etag:
3f80f-1b6-3e1cb03b Accept-Ranges: bytes Content-
Length: 438 Connection: close Content-Type: text/html

7 Legturi externe
HTTP 0.9 As Implemented in 1991

Change History for HTTP. W3.org. http://www.


w3.org/Protocols/History.html. Accesat la 1 august
2010. A detailed technical history of HTTP.

Design Issues for HTTP. W3.org. http://www.


w3.org/Protocols/DesignIssues.html. Accesat la 1
august 2010. Design Issues by Berners-Lee when
he was designing the protocol.

Classic HTTP Documents. W3.org. 14 mai 1998.


http://www.w3.org/Protocols/Classic.html. Acce-
sat la 1 august 2010. list of other classic documents
recounting the early protocol history
6 8 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

8 Text and image sources, contributors, and licenses


8.1 Text
Hypertext Transfer Protocol Surs: https://ro.wikipedia.org/wiki/Hypertext_Transfer_Protocol?oldid=10465032 Contribuitori: Hashar,
Ozone, Bstanescu, Elerium, YurikBot, Palica, AdiJapan, RobotQuistnix, Remigiu, Strainu, Andrei Stroe, FlaBot, Strainubot, NeaNita, Es-
carbot, Thijs!bot, JAnDbot, Diana G, Rei-bot, DorganBot, VolkovBot, TXiKiBoT, SieBot, Idioma-bot, Loveless, RadufanBot, DragonBot,
OKBot, PixelBot, SilvonenBot, Numbo3-bot, Luckas-bot, Jotterbot, Rubinbot, Radu Rdeanu, Xqbot, RedBot, RibotBOT, Obersachsebot,
ButkoBot, MastiBot, EmausBot, BAICAN XXX, WikitanvirBot, Hecktor~rowiki, MerlIwBot, AvocatoBot, Makecat-bot, XXN, Addbot,
Erik.mooreeld, KasparBot, CristiAlex94 i Anonim: 10

8.2 Images
Fiier:Commons-logo.svg Surs: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licen: Public domain
Contribuitori: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used to be
slightly warped.) Artist original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
Fiier:Wikidata-logo.svg Surs: https://upload.wikimedia.org/wikipedia/commons/f/ff/Wikidata-logo.svg Licen: Public domain Con-
tribuitori: Oper proprie Artist original: User:Planemad

8.3 Content license


Creative Commons Attribution-Share Alike 3.0

S-ar putea să vă placă și