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

Compare with Current View Page History

« Previous Version 5 Next »

TDAT2004-A Datakommunikasjon med nettverksprogrammering

Oppgave 9 - HTTP/2

Ole Kristian Aune og Christian Echtermeyer

  • Video (embeddes på siden)

1. Innledning

HTTP/2 tilhører applikasjonslaget, mer nøyaktig som en del av Sesjonslaget og er tett knyttet sammen med SSL/TLS. Det er ikke en erstatning for HTTP/1.x, men kan heller anses som en mer effektiv måte å representere HTTP-protokollen på. Det er IETF (The Internet Engineering Task Force) som har utviklet HTTP/2 og som står for all vedlikehold av HTTP-protokollen.

Skjermbilde 2017-02-26 kl. 16.09.57.png

2. Ønsket funksjonalitet  

Hovedtingene man ønsker å oppnå med HTTP/2 er:

  • binær overføring i stedet for tekstlig.

  • fullt multiplekset, i stedet for fast rekkefølge og blokkering

  • kan bruke en kobling for parallell overføring

  • komprimere header-informasjon for å minke overhead (HPACK)

  • tillater servere å dytte (“push”) filer man regner med at klienten kommer til å be om, til klientens chache.

Størrelsen på dagens nettsider, og antall ressurser hver side ønsker å laste inn har endret seg mye siden HTTP/1.1 standarden ble utformet. [3] Det har også måten man lager og tenker på nettsider. Dagens nettsider er mer en form for web-applikasjoner enn statiske sider med linker mellom seg. Dermed har også kravet for hvordan man overfører data endret seg. Binær overføring i stedet for tekstlig overføring. Det gjør at man slipper å parse hver eneste bokstav for å lese informasjonen, man har istedet lengdeinformasjon som forteller hvor langt man skal lese fremover for den neste informasjonen. I tillegg bruker HTTP/2 kun én TCP forbindelse. Denne er multiplekset og man kan derfor kjøre paralell overføring over denne uten å støte på “head-of-line”-blokkering som i HTTP/1.1. Med mange forespørsler til serveren, ønsker man å ha mindre overhead, derfor har man i HTTP/2 utformet en egen komprimeringsalgoritme (HPACK) for header-informasjon i forespørslene. HPACK fungerer ved hjelp av en statisk tabell, der alle de vanligste headerene ligger lagret, en dynaisk tabell og huffmann-koding. Den siste av de store optimaliseringene er at serveren nå får lov til å “pushe” flere filer enn det kienten spør om. Dette kan for eksempel være bilder eller stilsett som man kan forvente at klienten kommer til å be om etter den har fått parset HTML-filen. Vi kan derfor sende disse filene til klientens cache, så den kun trenger å hente lokale filer når den er klar for å be om disse.

3. Virkemåte

Beskriv hvordan ting fungerer og gjøres. Oppbygning og struktur. Forklare med illustrasjoner eller skjermklipp, bilder eller analyse av pakkefangst.

4. Referanser

[1]http://httpwg.org/specs/rfc7540.html

[2]http://httpwg.org/specs/rfc7541.html

[3]https://http2.github.io/faq/

  • No labels