Cereri HTTP
Cu totii sunteti familiari cu acest format:

Exemplul de mai sus cuprinde:
- versiunea protocolului
- host-ul interlocutorului
- calea de pe serverul interlocutorului unde se va desfasura actiunea
- parametri aditionali de cerere (optionali)
Ce este prezentat in poza nu este o cerere HTTP, ci preambul unei cereri HTTP. De fapt, in momentul in care se da enter, browserul (sau orice alt client) creaza, bazat pe informatiile oferite, cererea HTTP efectiva.
Formatul cererii este urmatorul:
METODA CALE VERSIUNE_PROTOCOL\r\n
Host: HOST\r\n
Header1: Valoare Header1\r\n
Header2: Valoare Header2\r\n
...
Cookie: cheie1=valoare1; cheie2=valoare2; ...; cheieN=valoareN\r\n
\r\n
DATA
Linia de start contine 3 elemente.
Primul element este metoda folosita. Metodele HTTP sunt verbe ce descriu actiunea ce va fi efectuata asupra entitatii catre care se transmite cererea. Cele mai des utilizate cereri sunt:
- GET - interogare de resurse
- POST - aduagare de resurse. De obicei are si date atasate.
- PUT - modificare de resurse. De obicei are si date atasate.
- DELETE - stergere de resurse
Al doilea element este reprezentat de calea si parametrii de cerere (daca exista) unde se va actiona asupra resursei, pe server. In cazul in care exista parametri de cerere, acestia trebuie separati de restul caii prin ?.
Al treilea element este reprezentat de versiunea protocolului de HTTP folosita. Implicit, din motive de securitate, este folosit HTTPS. Pentru varianta ne-securizata, ultima versiune este HTTP/1.1.
A doua linie descrie host-ul entitatii unde va fi transmisa cererea. Host-ul poate sa fie atat un ip cat si un domeniu.
Note
Host-ul este, de fapt, tot un header. Pentru a omite aceasta linie este necesar sa puneti host-ul in cale, exact cum se scrie in browser. Totusi, este indicat sa tratati host-ul ca linie separata.
Headerele sunt scrise cate unul pe rand. Acestea sunt folosite pentru a transmite informatii aditionale catre interlocutor. Headerele se impart in 3 categorii:
- Request Headers - descriu modul in care se face cererea si cum se poate raspunde la ea. Exemplu: User-Agent
- General Headers - descriu informatii cu caracter general care tin de comunicare. Exemplu: Keep-Alive
- Entity Headers - descriu informatii despre datele (daca exista) atasate cererii. Exemplu: Content-Type si Content-Length
Note
Daca exista data atasata cererii, trebuie specificate, obligatoriu, cele doua headere Content-Type si Content-Length