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

Compare with Current View Page History

« Previous Version 8 Next »

 <URL til video>


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 med destinasjon og fikk tilbake én enkel hypertext fil. I 1990 tallet merket man et større behov for å få tilbake mer innformasjon enn bare den enkle hypertext filen. Web-utviklere produserte egne eksperimentale implementasjoner, og i mai 1996 publiserte HTTP Working Group (HTTP-WG) 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å tilbake mer informasjon om dataen som ble hentet eller sent, og det er dette problemet header extensions løser. For eksempel kan man sende enkel informasjon som versjon eller tid, eller bruke dem for å endre responsen man får om det har blitt gjort endringer etter et bestemt tidspunkt. Dette kan være en stor hjelp for troubleshooting.

 

3. Virkemåte

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

Headere 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.

 

Eksempel:

Når du går inn på hjemsiden i itslearning, blir følgende forespørsel sendt får å hente 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 headere

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

 

 

  • No labels