Http (hypertext transfer protocol)

Acesta a intrat în vigoare la data de:

HTTP (Engl H yperT ext T P rotocol axele pe transfer. - «Hypertext Transfer Protocol") - o aplicație de rețea de date de protocol de strat. Protocolul se bazează pe tehnologia „client-server“, care este, să presupunem existența unor consumatori (clienți) care inițiază conexiunea și trimite o cerere, și furnizori (servere), care sunt în așteptare pentru solicitarea de conectare, produc acțiunile necesare și pentru a reveni mesajul înapoi cu rezultatul.

HTTP este utilizat în alte protocoale strat de aplicare, precum și pentru transferul de la server la client de obiecte: imagini, script-uri, CSS-fișiere, fișiere de date. De asemenea, el lucrează în direcția opusă - pentru a completa serverul de fișiere, formulare de trimitere, etc. AJAX-aplicații sunt, de asemenea, să comunice în mod evident cu serverul prin HTTP. Uneori, HTTP este folosit pentru lucruri mai specifice, de exemplu, pentru a gestiona conținut prin intermediul unui server WebDAV, XML-RPC, WebDAV.

parametrii de protocol

mesaj HTTP

Mesajele HTTP includ cereri de client la server și răspunsurile server la client.

Http (hypertext transfer protocol)

interacțiune cu clienții (UA), cache-ul și serverul sursă pentru protocolul HTTP

mesaj de solicitare și de răspuns utilizând formatul RFC-822 mesaj comun pentru transmiterea obiectelor (câmp de date al mesajului). Ambele tipuri de mesaje constau dintr-o linie de start, unul sau mai multe câmpuri de antet (de asemenea, cunoscut sub numele de „antete“), un șir gol (de exemplu, un șir de caractere care conține CRLF), marcând sfârșitul câmpurile de antet, și un corp mesaj opțional.

În interesul siguranței, se recomandă serverele ignora orice rânduri goale produse atunci când estimată Cerere-Line (șir de interogare). Cu alte cuvinte, în cazul în care serverul citește fluxul de protocol de la începutul mesajului și primește un CRLF în primul rând, aceasta ar trebui să ignore CRLF.

Metoda HTTP (în engleză HTTP Metoda.) - o secvență de alte scopuri decât de control și separatoare de caractere, indicând funcționarea de bază privind resursa. De obicei, metoda este un cuvânt scurt, limba engleză scris cu majuscule. Rețineți că numele metodei este sensibil la majuscule.

Fiecare server este necesar pentru a menține cel puțin metodele GET si HEAD. În cazul în care serverul nu recunoaște metoda specificată de client, acesta trebuie să returneze statutul 501 (Neimplentat). Dacă serverul de metodă este cunoscută, dar nu este aplicabilă unei anumite resurse, acesta returnează un mesaj cu codul 405 (Metodă nepermisă). În ambele cazuri, serverul ar trebui să fie incluse în antetul mesajului Permite răspuns cu o listă de metode acceptate.

În plus față de metodele GET si HEAD. adesea folosit metoda POST.

Semantica metodei este schimbat la "GET condiționată", în cazul în care mesajul de cerere include câmpuri If-Modified-Since antet, If-Nemodificată-Din, Daca-Match, Dacă-Fără-Match sau dacă-Range. Metoda GET cereri condiționate, transmiterea obiectului numai dacă cerințele descrise în câmpurile de antet relevante. Metoda GET condiționată este destinat să reducă utilizarea rețelei inutile, permițând actualizarea obiectelor de memorare în cache, fără a trimite solicitări multiple sau transferul de date deja disponibile pe client. Semantica schimbării metodei GET la o „GET parțială“, în cazul în care mesajul de cerere include un câmp de antet Range. Cerere de GET parțială, care sunt destinate să transfere doar o parte a obiectului. Metoda GET parțială are ca scop reducerea comunicării inutile de rețea, permițând transferul este doar o parte a obiectului, care este necesar pentru client, și fără a trimite piesele existente.

Metoda HEAD este identic cu GET cu excepția faptului că serverul nu trimite corpul mesajului. Meta informații conținute în antetele în cererea HEAD de răspuns trebuie să fie identic cu informațiile trimise ca răspuns la cererea GET. Această metodă poate fi utilizată pentru a obține informațiile meta a obiectului specificat în cerere, fără a transfera corpul de obiect. Această metodă este adesea folosit pentru testarea link-uri hipertext pentru valabilitate, accesibilitate și relevanță.

Metoda PUT impune ca un obiect încorporat a fost stocată folosind Solicitare-URI. Dacă solicitarea-URI se referă la o resursă deja existentă, entitatea închisă trebuie să fie considerată ca o versiune modificată a obiectului de pe serverul sursă. Dacă solicitarea-URI nu indică o resursă existentă și agentul utilizator solicitant poate determina acest URI ca o nouă resursă, 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 trimite un cod de răspuns 200 (OK) sau 204 (nr de conținut - fără conținut) și, prin urmare, anunțând cererea este de succes. În cazul în care resursa nu poate fi creată sau modificată de cerere-URI, ar trebui să fie trimise la codul de răspuns adecvat, care reflectă natura problemei. obiect destinatar ar trebui să ignore orice * antet Content- (de exemplu, Content-Range), pe care el nu a înțeles sau nu au folosit, și într-un astfel de caz, returnați codul de răspuns 501 (Neimplentat - nu este utilizat).

Metoda POST este utilizată atunci când serverul de aplicații pentru a accepta încorporat în obiectul de interogare ca o nouă resursă secundară identificată prin Cerere-URI în cererea-line. POST este proiectat pentru a oferi o schemă uniformă a următoarelor funcții:

Bază de date îmbunătățită prin adăugarea de operație (adăugare).

Metoda DELETE impune ca serverul sursă a distrus resursa identificată prin cerere-URI.

Metoda TRACE este folosit pentru a rula un mesaj de solicitare ciclu de la distanță la nivel de aplicație. Destinatarul final al cererii trebuie să trimită mesajul primit înapoi la client ca un corp obiect (cod = 200 (OK)). Destinația finală este fie serverul original sau primul proxy sau poarta de acces pentru a obține valoarea Max-Atacanți (0) în cerere. Cererea TRACE nu include un obiect.

coduri de stare

Anumite punerea în aplicare incorectă a HTTP / 1.0 clienții generează un plus de crlf după o cerere POST. HTTP Client / 1.1 nu trimite CRLF înainte sau după solicitarea.

HTTP conversație

Lista de coduri de stare HTTP # 1xx | 1xx informațional ( «Informație»)

În această clasă sunt coduri alocate, informarea cu privire la procesul de transfer. În HTTP / 1.0 mesaje cu aceste coduri ar trebui să fie ignorate. În HTTP / 1.1 client trebuie să fie pregătite să accepte această clasă mesaj ca răspuns normal, dar nimic pentru a trimite nevoile de server. Mesajele reale din răspunsul serverului conține doar linia de start și, dacă este necesar, câteva domenii specifice de antet de răspuns. Proxy-uri trebuie să trimită astfel de mesaje pe server la client.

Lista de coduri de stare HTTP # 2xx | 2xx de succes ( «succes»)

Posturi în această clasă oferă informații cu privire la cazuri de succes de la primirea și procesarea cererii clientului. În funcție de starea serverului poate trece încă antetele și corpul mesajului.

Lista de coduri de stare HTTP # 3xx | 3xx Redirecționarea ( «Forward")

Lista de coduri de stare HTTP # 4xx | Eroare 4xx Client ( «Eroare client")

clasa 4xx de coduri este destinat să indice eroarea pe partea de client. Dacă utilizați toate celelalte metode decât HEAD. serverul ar trebui să returneze hipertext explicația corpul mesajului pentru utilizator.

Lista de coduri de stare HTTP # 5xx | Eroare de server 5xx ( «Server Error")

Codurile 5xx alocate pentru o operație nereușită pe serverul defecțiunii. Pentru toate situațiile, ci de a utiliza metoda HEAD. serverul ar trebui să includă o explicație a corpului mesajului, pe care clientul va afișa pentru utilizator.

articole similare