GET

Metoda HTTP

Specificarea metodei HTTP GET

Metoda GET solicită transferul unei reprezentări curente selectate pentru resursa țintă. GET este mecanismul principal de regăsire a informațiilor și reprezintă punctul central al aproape tuturor optimizărilor de performanță. Prin urmare, atunci când oamenii vorbesc despre recuperarea unor informații identificabile prin HTTP, se referă, în general, la efectuarea unei cereri GET.

Este tentant să ne gândim la identificatorii de resurse ca la nume de traseu ale sistemului de fișiere la distanță și la reprezentări ca fiind o copie a conținutului acestor fișiere. De fapt, acesta este modul în care sunt implementate multe resurse (a se vedea secțiunea 9.1 pentru considerații de securitate aferente). Cu toate acestea, în practică nu există astfel de limitări. Este la fel de probabil ca interfața HTTP pentru o resursă să fie implementată ca un arbore de obiecte de conținut, o vizualizare programatică a diferitelor înregistrări din baze de date sau o poartă de acces la alte sisteme de informații. Chiar și atunci când mecanismul de cartografiere URI este legat de un sistem de fișiere, un server de origine ar putea fi configurat pentru a executa fișierele cu cererea ca intrare și a trimite ieșirea ca reprezentare, mai degrabă decât să transfere direct fișierele. Indiferent de aceasta, numai serverul de origine trebuie să știe cum fiecare dintre identificatorii săi de resurse corespunde unei implementări și cum reușește fiecare implementare să selecteze și să trimită o reprezentare curentă a resursei țintă într-un răspuns la GET.

Un client poate modifica semantica GET pentru a fi o "solicitare de interval", solicitând transferul doar a unei (unor) părți din reprezentarea selectată, prin trimiterea unui câmp de antet Range în cerere (RFC7233).

Un payload în cadrul unui mesaj de cerere GET nu are o semantică definită; trimiterea unui corp de payload într-o cerere GET ar putea face ca unele implementări existente să respingă cererea.

Răspunsul la o cerere GET poate fi pus în cache; un cache POATE să îl folosească pentru a satisface cererile GET și HEAD ulterioare, cu excepția cazului în care se indică altfel prin câmpul de antet Cache-Control (secțiunea 5.2 din RFC7234).

Metoda HTTP GET a fost specificată în secțiunea 4.3.1 din documentul RFC 7231 de către Internet Engineering Task Force (IETF) și World Wide Web Consortium (W3C).

Descrierea metodei GET

Metoda GET a protocolului HTTP poate fi comparată cu un bibliotecar digital. Aceasta solicită politicos serverului să prezinte datele fără a face modificări asupra datelor în sine – o cerere pur pasivă.

Ce face metoda GET specială?

  1. Consistență: Imaginați-vă că cereți bibliotecarului aceeași carte de mai multe ori – ați primi aceeași carte de fiecare dată. La fel se aplică și pentru cererea GET: aceasta oferă consistent același rezultat.
  2. Citește, nu scrie: Cererea GET are caracterul unui observator. Aceasta priveste datele, dar nu le modifică.
  3. Informații în URL: Considerați URL-ul ca o adresă sau un card de index. Acesta indică ce carte sau ce informație căutați. Cu toate acestea, atenție: aceste carduri nu ar trebui să conțină note private, deoarece pot fi văzute de alții.
  4. Răspunsuri rapide și eficiente: Datorită capacității de a stoca răspunsuri în cache, metoda GET poate răspunde rapid la cererile repetate, asemănător unui bibliotecar bine organizat care știe exact unde se află fiecare carte.

Dar există și limitări:

  1. Spațiu limitat pentru note: URL-ul are doar atât spațiu pentru informații. Este ca și cum ai scrie pe un card de index mic.
  2. Fără secrete: Deoarece URL-urile sunt vizibile și pot fi stocate, nu ar trebui să notezi pe ele nicio informație sensibilă.
  3. Fără interferențe: Un observator nu influențează ceea ce observă. Prin urmare, metoda GET nu ar trebui să fie folosită pentru a modifica date. Există alte instrumente în trusa noastră digitală pentru asta.

Per ansamblu, metoda GET este un instrument fiabil și esențial în spațiul digital, ajutându-ne să preluăm informații în mod eficient și sigur.

Exemplu pentru metoda HTTP GET

Request header:
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache