Un set de metode comune pentru HTTP / 1.1 este prezentată mai jos. Cu toate că acest set poate fi extins, nu puteți presupune că metode suplimentare pentru a partaja aceeași semantică ca și în cazul în care acestea sunt extensii ale diferitelor clienți și servere.
Gazdă câmp cerere-antet (secțiunea 14.23) trebuie să însoțească toate HTTP / 1.1 cereri.
Programatorii ar trebui să se înțeleagă că software-ul în interacțiunea cu Internetul este utilizatorul, iar programul de utilizator de pe orice acțiune pe care el ar trebui să fie informat poate produce, dar care poate avea o semnificație neașteptată pentru ei sau pentru alții.
În special, sa convenit că GET HEAD și metodele nu ar trebui să aibă nici un alt sens, altele decât de încărcare. Aceste metode ar trebui să fie considerate ca fiind „sigur“. Acest lucru permite agentilor utilizator sa reprezinte alte metode, cum ar fi POST, PUT și DELETE, într-un mod care utilizatorul a fost informat că acesta solicită executarea unei acțiuni potențial periculoase.
Desigur, nu este posibil să se asigure că serverul nu generează efecte secundare ca urmare a cererii GET; de fapt, unele resurse dinamice oferă o astfel de oportunitate. Diferența importantă aici este faptul că utilizatorul nu a solicitat efectele secundare și, prin urmare, utilizatorul nu poate fi considerat responsabil pentru ele.
Metodele pot avea, de asemenea, proprietatea de a „idempotence“, în sensul că efectele secundare ale N> 0 cereri identice sunt aceleași ca și pentru o singură cerere (pentru probleme de eroare sau de expirare). Metode GET, HEAD, PUT și DELETE posedă această proprietate.
Metoda OPȚIUNI reprezintă o cerere, informații despre opțiunile de comunicare disponibile în lanțul cererilor / răspunsurilor identificate de către URI solicitată (Request-URI). Această metodă permite clientului pentru a determina opțiunile și / sau cerințele asociate cu o resursă, sau capacitățile de server, dar nu acționează ca o resursă sau inițierea unui descărcare.
În cazul în care răspunsul de la server - acest lucru nu este un mesaj de eroare, atunci răspunsul nu trebuie să conțină nici un alt obiect de informații, în plus față de ceea ce poate fi considerat ca opțiunile de conectare (de exemplu Permite - pot fi considerate adecvate, dar Content-Type - nr). Răspunsurile la această metodă nu sunt în cache.
În cazul în care URI solicitată (Cerere-URI) nu este un asterisc ( „*“), cererea de opțiuni nu se aplică opțiunile care sunt disponibile în comunicarea cu acea resursă. În cazul în care codul de stare de răspuns - 200, răspunsul ar trebui să includă toate câmpurile de antet care indică caracteristici opționale puse în aplicare de către server și aplicabil de resurse (de exemplu, să permită), inclusiv prelungirile, nu fac parte din această descriere, în plus față de domeniile comune respective sau domenii antet de răspuns (răspuns-antet). În cazul în care cererea OPȚIUNI trece printr-un server proxy, modificați răspunsul pentru a exclude acele opțiuni care nu oferă pentru acest server proxy.
Metoda GET înseamnă a prelua orice informație (sub forma unei entități) este identificată de către URI solicitată (Request-URI). În cazul în care URI solicitată (Cerere-URI) se referă la un proces care produce date ca răspuns un obiect ar trebui să fie returnat la datele obținute, și nu textul sursă al procesului în cazul în care procesul nu scoate textul original.
Variază "GET condiționată" ( "GET condiționată"), în care mesajul de cerere include câmpuri If-Modified-Since antet, If-Nemodificată-Din, Daca-Match, Dacă-Fără-Match, sau dacă-Range. O metoda GET condiționată cere ca entitatea să fie transferată numai în cazul în care îndeplinește condițiile descrise în câmpurile de antet condiționate. Metoda GET condiționată este destinat să reducă utilizarea rețelei inutile, și vă permite să actualizați obiecte stocate în memoria cache, fără utilizarea de solicitări multiple sau transferul de date deja deținute de către client.
Aceasta variază ca „GET parțială“ ( „GET parțială“), în care mesajul de cerere include un câmp de antet Range. O solicitare GET parțială că numai o parte a obiectului, așa cum este descris în secțiunea 14.36. Metoda GET parțială este destinat să reducă utilizarea rețelei inutile, și vă permite să colecteze elemente din piesele, fără a transfera date deja deținute de către client.
Răspuns la o solicitare GET este cachable dacă și numai dacă îndeplinește cerințele pentru cache HTTP descrise în secțiunea 13.
Metoda HEAD este identic cu GET, cu excepția faptului că serverul nu trebuie să returneze un mesaj de corp în răspunsul (mesajul-corp). Meta informații conținute în antetele HTTP de răspuns la solicitarea HEAD ar trebui să fie identice cu informațiile furnizate ca răspuns la cererea GET. Această metodă poate fi utilizată pentru obținerea meta-informații despre solicitarea fără a transfera corpul obiect (entitate-corp). Această metodă este adesea folosit pentru testarea link-uri hipertext pentru valabilitate, accesibilitate, și timpul de modificare.
HEAD răspuns la solicitarea poate fi salvată în memoria cache, în sensul că informațiile conținute în răspunsul poate fi utilizat pentru a actualiza un obiect în cache anterior din această resursă. În cazul în care noile valori de câmp indică faptul că entitatea în cache diferă de obiectul curent (pentru parametrii, cum ar fi Content-Length, Content-MD5, ETag sau Last-Modified), apoi cache-ul trebuie să trateze ca stătut.
Acțiunea realizată prin metoda POST nu poate oferi, ca urmare a resurselor care pot fi folosite pentru a identifica URI. În acest caz, în funcție de faptul dacă obiectul de răspuns cuprinde descrierea rezultatului, sau nu, codul de stare în răspuns poate fi un 200 (OK), și 204 (nr conținut, nr Conținut).
În cazul în care resursa a fost creată pe serverul de origine, răspunsul AR TREBUI să fie 201 cod (Creat, Creat) și să conțină o entitate care descrie starea cererii și se referă la noua resursă, și o locație antet (vezi secțiunea 14.30).
Răspunsurile la această metodă nu sunt cacheable, cu excepția cazului în răspunsul include câmpul corespunzător Cache-Control sau Expira antet. Cu toate acestea, răspunsul cu un cod de stare 303 (A se vedea o alta, A se vedea alte) pot fi folosite pentru a redirecționa agentul utilizator pentru a prelua resursa din cache.
cereri POST trebuie să respecte cerințele de transmitere a mesajului stabilite în secțiunea 8.2.
cereri Method PUT, care conțin obiect stocat sub URI solicitat (Request-URI). Dacă solicitarea-URI se referă la o resursă deja existentă, entitatea închisă trebuie considerată ca o versiune modificată a celui care are reședința pe serverul de origine. Dacă solicitarea-URI nu indică o resursă existentă, și poate fi interpretat de un agent utilizator ca o nouă resursă pentru solicitările pe care serverul de origine poate crea resursa cu acel URI. În cazul în care se creează o nouă resursă, serverul de origine trebuie să informeze agentul utilizator prin intermediul acestui răspuns cu codul de stare 201 (Creat, Creat). În cazul în care o resursă existentă este modificată, apoi pentru a indica finalizarea cu succes a cererii trebuie să trimită un răspuns cu un cod de stare, fie 200 (OK) sau 204 (Niciun conținut, Niciun conținut). În cazul în care resursa nu poate fi create sau modificate pentru URI solicitată (Request-URI), este necesar să se trimită un răspuns care reflectă natura problemei. obiect destinatar nu trebuie să ignore antetele * Content- (de exemplu Content-Range), care nu înțelege sau să pună în aplicare și trebuie, în acest caz, returnează un răspuns cu statut 501 (Neimplentat, Neimplentat) cod.
În cazul în care cererea trece printr-o memorie cache și Solicitare-URI (Request-URI) identifică una sau mai multe entități stocate în memoria cache în prezent, aceste intrări în cache-ul acestor obiecte ar trebui să fie tratate ca vechi. Răspunsurile la această metodă nu sunt cacheable.
Diferența fundamentală dintre PUT și POST, solicitările sunt reflectate în diferite valori ale URI solicitată (Cerere-URI). URI într-o solicitare POST identifică resursa care se va ocupa de entitatea închisă. Această resursă poate fi un proces de primire gateway de date la un alt protocol sau o entitate separată, care primește adnotări (acceptă adnotări). Dimpotrivă, URI într-o solicitare PUT identifică entitatea închisă în cerere - agentul utilizator atribuie un URI este, un server nu trebuie să încerce să aplice cererea de alte resurse. Dacă serverul este dispus să aplice cererea unui alt URI, acesta trebuie să trimită un răspuns cu cod 301 (mutat permanent, mutat permanent); agentul de utilizator poate face apoi propria decizie cu privire la cererea Realocarea.
HTTP / 1.1 nu definește modul în care o metodă PUT afectează starea serverul original.
cereri PUT trebuie să respecte cerințele de transmisie a mesajului stabilite în secțiunea 8.2.
Metoda DELETE solicită ca serverul de origine șterge resursa identificată de către URI solicitată (Request-URI). Această metodă poate fi înlocuită de intervenția umană (sau prin alte mijloace) de pe serverul de origine. Clientul nu poate garanta faptul că a fost efectuată operațiunea, chiar și în cazul în care codul de stare returnat de pe serverul de origine indică faptul că acțiunea a fost încheiată cu succes. Cu toate acestea, serverul nu trebuie să indice de succes, cu excepția cazului, în momentul în care răspunsul pe care intenționează să șteargă resursa sau mutați-l într-o locație inaccesibil.
Un răspuns de succes ar trebui să fie de 200 (OK), în cazul în care răspunsul include o entitate care descrie starea sau dacă starea 202 cod (Accepted, Acceptată), în cazul în care nu a fost încă produs acțiunea, sau au codul de stare 204 (nr de conținut, nr Conținut), în cazul în care rapoartele de răspuns succes (OK), dar nu conține un obiect.
În cazul în care cererea trece printr-o memorie cache și Solicitare-URI (Request-URI) identifică una sau mai multe entități stocate în memoria cache în prezent, aceste intrări trebuie să fie tratate ca vechi. Răspunsurile la această metodă nu sunt cacheable.
Metoda TRACE este folosită pentru a invoca un mesaj de solicitare de rambursare la distanță la nivel de aplicație. Cererea destinatarul final trebuie să reflecte mesajul primit înapoi la client ca corpul obiectului de răspuns cu codul de stare 200 (OK). Destinatarul final este fie serverul de origine sau primul proxy sau poarta de acces în primul rând, devine o valoare de zero (0) la câmpul Max-Redirecționează în cerere (a se vedea. Secțiunea 14.31). Cererea TRACE nu trebuie să includă o entitate.
TRACE permite clientului să vadă ce se întâmplă la celălalt capăt al lanțului de cerere și de a folosi datele pentru teste sau informații de diagnosticare. Valoarea câmpului Via (secțiunea 14.44) antet este de interes deosebit, deoarece acționează ca un lanț de cerere urmă. Folosind antetul câmpului Max-Redirecționează permite clientului de a limita lungimea lanțului de cerere, care este util atunci când se testează o buclă infinită în lanțul de proxy-uri de expediere mesaje.
Dacă interogarea se execută cu succes, răspunsul ar trebui să conțină întregul mesaj cerere în corpul obiectului (entitate-corp), iar Content-Type ar trebui să fie setat la „mesajul / http“. Răspunsurile la această metodă nu TREBUIE să fie salvată în memoria cache.