You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Current »


1. Innledning

Header extensions hører til i applikasjonslaget og er en del av HTTP.

Header extensions brukes for å sende ekstra informasjon via forespørsler eller tilbakemeldinger fra serveren og klienten.

I HTTP/0.9 var ingen slike headere inkludert; man hadde én enkel forespørsel og fikk tilbake én hypertext fil. I 1990-tallet merket man et større behov for å få tilbake mer innformasjon enn bare den ene hypertext filen. Web-utviklere produserte egne eksperimentale implementasjoner, og i mai 1996 publiserte HTTP-WG protokoll standarden RFC1945, som dokumenterte felles bruk av HTTP/1.0 i de mange implementasjonene man kunne finne. Det er først da header extensions kom inn i bildet.

*HTTP Working Group er en Gruppe innen IETF, dannet i 1994, som spesifisk fokuserer på å forbedre HTTP protokollen.

 

2. Ønsket funksjonalitet

I HTTP/0.9 merket man et behov for å få mer tilbakemelding om dataen som ble hentet eller sent, og det er dette problemet header extensions løser. Eksempelvis kan man sende informasjon om versjon eller tid, eller bruke dem for å endre responsen man får om det har blitt gjort endringer etter et bestemt tidspunkt. Dette kan også være en stor hjelp for troubleshooting.

 

3. Virkemåte

En header består av et navn, kolon ':' og en verdi.

De blir gjerne organisert i fire kategorier, avhengig av det de gir informasjon om:

  • generelle headere, som gjelder for både respons og forespørsel uten å ha noen innflytelse på dataen som blir overført
  • forespørsel headere, som informerer om dataen som skal hentes eller klienten
  • respons headere, som informerer om responsen eller serveren
  • entitet headere, som informerer om selve innholdet i entiteten

I tillegg til standard headere kan man også bruke custom headere for å få enda mer informasjon.

Disse custom headerene begynner traditionelt med x- i navnet sitt, slik at man lett kan skille dem fra standard headere. Men i 2012 avgjorde IETF i RFC6648 at man burde slutte og legge til denne ekstra x-en forann navnet, da dette egentlig kompliserer ting om denne headeren skulle bli standardisert på et senere tidspunkt.

 

Eksempel:

Når du går inn på hjemsiden i itslearning, blir følgende forespørsel sendt får å hente HTML filen 'instantmessage':

Den første linjen er selve forespørselen. Den består av tre elementer:

  • Metoden, oftest GET, POST eller HEAD
    GET brukes generelt for å hente dokumenter (HTML, JavaScript, CSS, bilder, osv)
    POST brukes generelt i web forms for å sende større mengder med data
    HEAD brukes når man ønsker å få tilbake responsen og headerene, heller en dokumentet
  • Stien til ressursen, ekskludert host
  • Protokollen som blir brukt, oftest 1.1 i moderne nettlesere

Resten er HTTP headere i formen 'navn: verdi' og gir litt mer informasjon om forespørselen og nettleseren. De fleste av dem er valgfrie, og forespørselen kunne funket uten dem.


I samme eksempel, får du følgende respons:

Den første linjen er status linjen. Her finner man Protokollen igjen, og statuskoden fulgt av en kort melding. Godt kjente statuskoder inkluderer '404 Not found' og '500 Internal server Error'.

Resten er headere, som informerer om serveren og responsen, for eksempel når filen sist ble endret. De fleste av disse headerene er igjen valgfrie.

Under headerene kommer selve HTML-en (ikke inkludert i bildet).

 

4. Kilder

https://hpbn.co/brief-history-of-http/ - Litt HTTP historie

https://code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039 - HTTP Headers for dummies

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers - Liste over standard headers

https://www.keycdn.com/support/custom-http-headers/ - Informasjon om Custom headers

https://www.rfc-editor.org/standards - Offisielle Internet Protokoll Standarder

 

 

  • No labels