Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Widget Connector
width500
urlhttps://www.youtube.com/watch?v=9yvUc_HZoWc&feature=youtu.be
height300

<Header extensions>

 <URL til video>


1. Innledning

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

...

I HTTP/0.9 var ingen slike headere inkludert; man hadde én enkel forespørsel med destinasjon og  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 ene hypertext filen. Web-utviklere produserte egne eksperimentale implementasjoner, og i mai 1996 publiserte HTTP Working Group (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å tilbake mer informasjon tilbakemelding om dataen som ble hentet eller sent, og det er dette problemet header extensions løser. For eksempel Eksempelvis kan man sende enkel informasjon som 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 extension består av et navn, kolon ':' og en verdi.

Image Modified

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

...

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':

Image Modified

Den første linjen er selve forespørselen. Den informerer om metoden som er brukt (GET), stien (/instantmessage/instantmessage), og protokollen som er brukt (HTTP/1.1)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 disse dem er valgfrie, og forespørselen kunne funket uten dem.


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

Image Modified

Den første linjen er status linjen, resten . 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 og under der igjen kommer selve HTML-en (ikke inkludert i bildet).

Beskrivelse av løsning, aktuelle protokoller, fangster med wireshark, statistikker og annet 

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 headereheaders

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

...