HTTP Handledning
Komma igång med HTTP
Sök…
Anmärkningar
Hypertext Transfer Protocol (HTTP) använder en klientbegäran / server-responsmodell. HTTP är ett statslöst protokoll, vilket innebär att det inte kräver att servern behåller information eller status om varje användare under flera begäranden. Av prestandaskäl och för att undvika TCP 'problem med anslutningslatens kan tekniker som Persistent, Parallel eller Pipelined anslutningar användas.
versioner
Version | Not (s) | Uppskattat utgivningsdatum |
---|---|---|
HTTP / 0,9 | "Som implementerad" | 1991-01-01 |
HTTP / 1,0 | Första versionen av HTTP / 1.0, sista versionen som inte har gjort det till en RFC | 1992-01-01 |
HTTP / 1,0 r1 | Första officiella RFC för HTTP | 1996/05/01 |
HTTP / 1,1 | Förbättringar i anslutningshantering, stöd för namnbaserade virtuella värdar | 1997-01-01 |
HTTP / 1,1 r1 | Otvetydig sökordsanvändning städad, eventuella problem med meddelanden inramning fixade | 1999-06-01 |
HTTP / 1,1 r2 | Stora översyner | 2014-06-01 |
HTTP / 2 | Första specifikationen för HTTP / 2 | 2015/05/01 |
HTTP-förfrågningar och svar
HTTP beskriver hur en HTTP-klient, till exempel en webbläsare, skickar en HTTP-begäran via ett nätverk till en HTTP-server, som sedan skickar ett HTTP-svar tillbaka till klienten.
HTTP-begäran är vanligtvis antingen en begäran om en online-resurs, till exempel en webbsida eller bild, men kan också innehålla ytterligare information, till exempel data som matas in på ett formulär. HTTP-svaret är vanligtvis en representation av en online-resurs, till exempel en webbsida eller bild.
HTTP / 1,0
HTTP / 1.0 beskrivs i RFC 1945 .
HTTP / 1.0 har inte några funktioner som idag är de facto krävs på webben, till exempel Host
huvudet för virtuella värdar.
Emellertid förklarar HTTP-klienter och servrar ibland fortfarande att de använder HTTP / 1.0 om de har ofullständig implementering av HTTP / 1.1-protokollet (t.ex. utan chunkad överföringskodning eller pipelining), eller kompatibilitet anses vara viktigare än prestanda (t.ex. när du ansluter till lokal proxy servrar).
GET / HTTP/1.0
User-Agent: example/1
HTTP/1.0 200 OK
Content-Type: text/plain
Hello
HTTP / 1,1
HTTP / 1.1 har ursprungligen specificerats 1999 i RFC 2616 (protokoll) och RFC 2617 (autentisering), men dessa dokument är nu föråldrade och bör inte användas som referens:
Använd inte RFC2616. Ta bort den från dina hårddiskar, bokmärken och bränna (eller återanvänder) alla kopior som skrivs ut.
Den aktuella specifikationen för HTTP / 1.1, som matchar hur HTTP implementeras idag, finns i nya RFC: er 723x:
- RFC 7230: Syntax och routing för meddelanden
- RFC 7231: Semantik och innehåll
- RFC 7232: Villkorliga begäranden
- RFC 7233: Range Requests
- RFC 7234: Caching
- RFC 7235: Autentisering
HTTP / 1.1 lagt till, bland andra funktioner:
- chunkad överföringskodning, som tillåter servrar att pålitligt skicka svar av okänd storlek,
- ihållande TCP / IP-anslutningar (som inte var standardförlängning i HTTP / 1.0),
- intervallförfrågningar som används för att återuppta nedladdningar,
- cache-kontroll.
HTTP / 1.1 försökte införa pipelining, vilket gjorde det möjligt för HTTP-klienter att minska fördröjningsfördröjningen genom att skicka flera förfrågningar på en gång utan att vänta på svar. Tyvärr implementerades den här funktionen aldrig korrekt i vissa proxies, vilket orsakade pipelinerade anslutningar att släppa eller ordna om svar.
GET / HTTP/1.0
User-Agent: example/1
Host: example.com
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close
Hello
HTTP / 2
HTTP / 2 ( RFC 7540 ) ändrade HTTP-formatet från en enkel textbaserad begäran och svarhuvuden till binärt dataformat skickat i ramar. HTTP / 2 stöder komprimering av rubrikerna ( HPACK ).
Detta reducerade omkostnaderna för förfrågningar och möjliggjorde mottagning av flera svar samtidigt via en enda TCP / IP-anslutning.
Trots stora förändringar i dataformatet använder HTTP / 2 fortfarande HTTP-rubriker, och förfrågningar och svar kan översättas exakt mellan HTTP / 1.1 och 2.
HTTP / 0,9
Den första versionen av HTTP som kom till var 0,9, ofta kallad " HTTP Som Implementerad ." En vanlig beskrivning av 0,9 är "en del av det fullständiga HTTP [dvs. 1.0] -protokollet." Men detta misslyckas i hög grad med att illustrera skillnaden i kapacitet mellan 0,9 och 1,0.
Varken förfrågningar eller svar i 0.9 funktionsrubriker. Begäran består av en enda CRLF-terminerad linje av GET
, följt av ett mellanslag, följt av den begärda resursens URL. Svaren förväntas vara ett enda HTML-dokument. Slutet av nämnda dokument markeras genom att tappa anslutningsserversidan. Det finns inga möjligheter att indikera framgång eller misslyckande med en operation. Den enda interaktiva egenskapen är söksträngen som är nära knuten till <isindex>
HTML-taggen.
Användning av HTTP / 0.9 är numera exceptionellt sällsynt. Det ses ibland på inbäddade system som ett alternativ till tftp .