Sunteți pe pagina 1din 8

Ce este HTTP ?

HTTP este un cronim pentru Hyper Text Transfer Protocol.


Este un protocol de transfer request-response
WWW este o metoda de a comunica intre Client si servar.

Comunicarea intre Computerele clientilor si Servarele web se face prin trimiterea de Http request si
primirea de Http responses.

Clienti inseamna orice


forma de program sau
dispozitiv dar cel mai
adesea sunt browsere .

Comunicarea se face prin


requesturi (cereri) si
responses(raspunsuri).

Requestul declanseaza o
actiune pe servar si
response-ul este
raspunsul servarului la
acea actiune.
In HTTP/1.1 aceste mesaje erau transmise deschis , acum ele sunt separate in HTTP frames,
pentru imbunatatirea performantelor.

Structura unui mesaj(request sau response) HTTP

The head of the HTTP message is made of the start-line and meta data (HTTP headers)
and the payload is the option body(continut).
HTTP Requests
HTTP requests sunt msaje trimise de client pentru a initializa o actiune pe server.

a) Start line contine 3 elemente:

1. O metoda HTTP precum un verb : GET, PUT,POST sau un substantiv precum HEAD SAU
OPTIONS, care descriu actiunea ce va fi savarsita.
Ex: POST indica ca date vor fi trimise la SERVER(pentru creare sau modificare de resurse).
2.Calea catre elementul targetat, de obicei un URL. Formatul Cererii depinde de metoda http folosita.
Poate fi o cale absoluta urmata de ? (query string).
Un url complet este cel mai adesea folosit cu GET pentru conectarea la un proxy.
3.Versiunea HTTP care defineste structura mesajului si indica versiunea ce trebuie folosita pentru
response.

b)Header(antet):
este format de un string (sir de caractere) case-insensitive urmat de :
Antetul este format dintr-o singura linie. Headerul conditioneaza mesajul, sau dau date despre formatul si
continutul sau . Un tip de header este Entity headers : precum Content-Length care se aplica la continutul
requestului (payload)

c)Paylaod
Partea finala a request-ului este continutul(payload-ul)
Nu toate tipurile de request au unul . De obicei GET, HEAD, DELETE, sau OPTIONS nu au payload.
POST are si contine de obicei HTML form data.
Paylaod-ul pot fi separat in:

 Continut cu o singura resursa ce contine un singur fisier cu doua headere Content-Type si Content-
Length.

 Continut multipart ce contine mai multe resurse. Acest tip de request este de obicei asociat cu html
forms.

HTTP Response
Este format din :

a)Linia de start (status line ) ce contine:


1. Versiunea de HTTP (de obicei HTTP/1.1);
2.Cod de status (Status code) . Coduri de status comune sunt (200-cacheble by default,404-request
not found (link rot),302-resursa mutata la locatia indicata de Location header);
3.Un text status , pur informational ce descrie Codul status pentru ca un om sa inteleaga mesajul
HTTP .

b) Antetul => are aceiasi structura ca si la request.


Exemple de response headers sunt:
 General headers : Via
 Response Headers : date aditionale precum Accepted-Ranges.
 Entety headers(Content-Length) se aplica la continutul
mesajului si nu este prezent daca mesajul nu are continut.

c) Continutul
Nu toate mesajele au un continut . De obicei cele care au status
codul 201 sau 204 nu contin.
El pot fi impartite in 3 categorii:
 Cu o singura resursa si de dimensiune stiuta. Ele sunt
definite de 2 parametrii in antet. Content-Type si Content-Length.
 Cu o singura resursa si de dimensiune nestiuta.Acestea sunt definite de parametrul din antet
Transfer-Encoding care este setat pe chunked.
 Continut cu resurse multiple ce este alcatuit din un continut multipart. Acest tip este relativ
rar.

Mesaje de tip HTTP/1.x au cateva dezavantaje din pct de vedere al performantelor. Anteturile nu
sunt comprimate.
Anteturile se repeta cu ocazia mai multor conexiuni desi la fel.
Nu se poate realiza multiplexing (trimiterea mai multor fluxuri de informatii printr-o singura
conexiune ).
HTTP/2 mai adauga un pas si separa mesajele HTTP/1 in cadre care sunt encodate in un flux de
date. Framurile cu antet sunt seprate ceea ce le face sa poata fi comprimate. Mai multe fluxuri de
date pot fi combinate impreuna . Proces ce se numeste multiplexing
Ceea ce permite conexiuni TCP mai eficiente. Mecanismul de a impartine mesajul in framuri mai
adauga un strat intermediar fara sa modifice in mod fundamental structura mesajului.

Con
cept
e
mai
ava
nsat
e:
Este
un
prot
ocil
de
tran
sfer
pe
niv
elul
apli
cati
ei in
mo
delu
l
OSI
.
Este
fun
dati
a
protocolul cel mai folositdin 1990. Este un protocol fara stare (stateless-Sevarul nu trebuie sa
pastreze informatii despre fiecare sesiune. Fiecare pachet transferat este independent, fara o
referinta la nici un alt pachet).
Portul default este TCP 80.
Caracteristici de baza:
1. HTTP is connectionless
2. HTTP is media independent
3. HTTP is stateless: Clientul si servarul stiu unul de existenta celuilalt doar in timpul
desfasurarii unui request. Apoi amandoi uita de existenta celuilalt
Orice interactiune Http presupune existenta unui request si a unui response.
In esenta Http este stateless. Fiecare request este independent si de aceea fiecare request trebuie sa
fie autonom si sa contina destule date pentru a implini cererea.

XHR - XML Http Request

Toate browserele au un obiect XMLHttpRequest.


XMLHttpRequest(XHR) este un obiect Js pentru a transfera resurse intre un web browser si un web
server.
XHR poate fi folosit sicu alte protocoale decat http si datele transferate pot fi de nenumarate tipuri nu
doar xml(html, css, json sau chiar text simpu).
Cu XHR poti trimite date in fundal sau updata parti ale unei pagini web in background. Se poate face
update la o parte din
pagina fara a reincarca
toata pagina.

XML

XML-extensible markup language. Pentru a stoca si transporta date(asemanator cu html dar nu FACE
NIMIC) este doar informatie intre taguri.
XML este pentru a transporta date si se focalizeaza pe ce sunt datele,
HTML se focalizeaza pe cum sunt AFISATE DATELE.
XML nu are taguri predefinite .
Felul in care este creat Xml este astfel incat versiuni mai vechi ale aplicatiei sa functioneze, chiar daca
sunt adaugate taguri noi.

URL

URL(Un
iform resource locator) este cel mai cunoscut concept de web si este utilizat pentru a identifica resurse
pe web.
Internetul poate fi considerat o colectie de resurse.

Un nume de domeniu reprezintă un șir de caractere care corespund unei adrese IP numerice aferente
unei mașini de calcul (server) conectată permanent la Internet. Numele de domeniu este unic. Folosind
numele de domeniu vizitatorii se pot conecta la interfața de utilizare a mașinii de calcul, respectiv web
site-ul dvs, prin intermediul căreia pot avea acces la informațiile, fișierele sau orice alt tip de materiale
pe care dvs le oferiți.

Path-calea, specifica unde sunt localizate resursele pe server. Foloseste aceiasi logica ca si structura
fisierelor de pe un sistem de operare clasic.
Parameters-Parametrii sun data aditionale pentru a identifica sau a filtra datele de pe server.

Cele mai populare metode http sunt:

 GET
 PUT
 POST
 DELETE

Fiecare metoda http corespunde unei actiuni .

Toate mesajele http au unul sau mai multe antete, urmate de un continut(payload) optional.

!!! Exemplu de start line a unui mesaj http de request:


GET /adds/search-result?item=vw+beetle HTTP/1.1
? => indica ca contine un query pentru a identifica sau/si filtra resursele.

Alti parametrii continuti re un request http sunt:


Referer header -antetul clientului;
User-Agent header -date aditionale despre agentul folosit pentru a trimite requestul
Host header —un nume unic pentru a identifica un host . Este necesar atunci cand mai multe pagini
web sunt gazduite;
Cookie header-parametrii aditionali despre user

!!!!! Http response ex: HTTP/1.1 200 OK

Alte date continute de un response http message sunt:


Server header
Set-Cookie header -trimite cookies la browser
Message body -adesea un response mesaje are si un corp
Content-Length header -descrie lungimea continutului in biti

HTTP methods
Get → Nu schimba structura resurselor de pe server in nici un fel.
Post→folosit pt a trimite date la un server pentru a crea o resursa;
PUT→Folosit pentru a updata o resursa folosind continutul mesajului.
HEAD — this method has the same function as GET method but with a difference that the return of
a HEAD method should not contain body in the response. However, the return will contain same
headers as if GET was used. HEAD method is used to check if the resource is present prior of
making a GET request.
Cele 4 tipuri de antete sunt:
1. Antet general: antente folosite atat in request cat si in response;

2. Antet de cerere(request): contine date importante despre clientucare face cererea

3. Antet de raspuns: Acest antet contine date despre raspuns;

4. Antet entity:descrie continutul mesajului

Sunt 4 tipuri de status code , grupate dupa prima cifra:


1xx-Informational
2xx-Cererea a fost cu succes
3xx-Clientul este redirectionat catre o alta resursa
4xx-Cerea contine un tip de eroare
5xx-Servarul a intampinat o eroare incercand sa indeplineasca cererea.

HTTPS
Asigura o conexiune encriptata intre client(browser) si website(server);
In http , protocolul de comunicare este securizat folosind Transport layer security(TLS) sau Secure
Socket Layer(SSL).
Cand Browserul si websitul initiaza comunicarea se numeste “SSL/TLS handshake”. SSL/TLS
handshake este un proces in care browserul si serverul se valideaza reciprocsi si incep comunicarea printr-un
SSL/TLS tunnel

DNS vine de la Domain Name Services si are rolul de a traduce un nume de domeniu (ex:
www.google.ro) intr-o adresa IP.

Deci putem spune ca DNS ne-a salvat de un mare chin: cel de a retine o adresa IP similara cu
aceasta 216.58.206.3 vs. un nume precum google.ro.

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