Hopp til innhold

HTTP

Fra Wikipedia, den frie encyklopedi

Hypertext Transfer Protocol(HTTP),norskhypertekstoverføringsprotokoll,erprotokollensom primært benyttes påverdensvevenfor å utveksle informasjon.

HTTP ble utvikla avWorld Wide Web Consortiumog arbeidsgrupper iInternet Engineering Task Force,og resulterte i en serie medRFCer,deriblantRFC 2616,som spesifiserer HTTP/1.1 (versjonen som vanligvis brukes i dag) som den viktigste.

Noennettleserekrever også at man angir denne protokollen i selve adresselinjen, slik som «http:// eksempel.no». På denne måten skiller man dataoverføringer ved hjelp av http (dvs. vanlige nettsider) fra andre typer, f.eks.FTP,som er en protokoll for å laste filer opp og ned mellom datamaskiner på nett, eller «mailto:[email protected]», som forteller nettleseren at man ønsker å sende en e-post til vedkommende adresse.

Funksjonalitet

[rediger|rediger kilde]

HTTP er en forespørsel/respons protokoll mellomklienterogtjener.EnHTTP-klient,slik som ennettleser,oppretter typisk enTCPforbindelse overIP-protokollentil en spesiellport(typisk port 80) på en annen vert. EnHTTP-tjenerlytter på den porten og venter på at klienten skal sende en forespørselstreng, slik som «GET / HTTP/1.1» (som vil resultere i at tjeneren sender standardsida fra en vevtjener). Etter forespørselstrengen kan enMIMEmelding følge, som har et hode som inneholder et antall parametre som beskriver ulike aspekter av forespørselen og et valgfritt innhold med vilkårlige data. Når en tjener mottar en forespørselstreng (og muligens ei melding), sender tjeneren tilbake en responsstreng som for eksempel «200 OK», og ei melding der kroppen kan være fila som ble forespurt, ei feilmelding eller annen informasjon.

HTTP er forskjellig fra andre TCP-baserte protokoller somFTPved at forbindelser vanligvis blir avslutta så snart en bestemt forespørsel (eller en serie med relaterte forespørsler) har blitt fullført. Denne teknikken gjør HTTP velegna for verdensveven der sider ofte lenkes til sider på andre tjenere. Teknikken kan noen ganger føre til problemer forutviklere,siden mangelen på en varig forbindelse gjør det nødvendig å ha andre måter å ta vare på tilstandsinformasjon for brukere. De fleste løsninger på problemet involverer bruken avinformasjonskapseler.

Det finnes også en sikker variant av HTTP som kallesHTTPSsom kan bruke hvilken som helstkrypteringsmetodeså lenge den er forstått av begge sider av forbindelsen.

Lokasjoner til HTTP- og HTTPS-sider oppgis somURL-er (Uniform Resource Locators).Denne adresseringsmåten ble lagd for lenking i HTML-dokumenter.

Nedenfor er et eksempel på ei samtale mellom en HTTP-klient og en HTTP-tjener ( google, lytter på port 80).

Klientforespørsel:

GET / HTTP/1.1
Host: google

(Fulgt av et linjeskift, i form avvognretur(carriage return) fulgt avlinjeskift.)

Tjenerrespons:

HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy
X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google
Connection: keep-alive

(Fulgt av ei blank linje og HTML-tekst som består avGoogleshovedside.)


I HTTP versjon 1.0 sender en klient en forespørsel til en tjener. Tjeneren svarer klienten. Etter denne utvekslinga så vil forbindelsen bli frigitt. I HTTP 1.1 derimot støttes varige forbindelser. Dette gjør det mulig for klienten å sende en forespørsel og få et svar, for deretter å sende flere forespørsler og få svar over den samme TCP-forbindelsen. TCP-forbindelsen blir altså ikke frigjort for hver forespørsel, men brukes til flere. Dette redusereroverhead i forbindelse med TCP, så kostnaden i form av nettverk og systemressurser reduseres. Det er også mulig å sende flere enn en (vanligvis to) forespørsler før noe svar mottas fra foregående forespørsler. Denne teknikken er også kjent somHTTP pipelining.

Eksterne lenker

[rediger|rediger kilde]