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-klienter och servrar skickar HTTP-förfrågningar respektive 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.

- Mark Nottingham, ordförande för HTTP WG

Den aktuella specifikationen för HTTP / 1.1, som matchar hur HTTP implementeras idag, finns i nya RFC: er 723x:

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 .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow