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

Compare with Current View Page History

« Previous Version 6 Next »

TDAT2004 Datakommunikasjon med nettverksprogrammering. Oppgave nummer 5, Lokalt mellomlager. Deltakere er Håkon Berg, Knut Erik Hildre og Ole Amandus Leknes. 

  • Video (embeddes på siden)

 

1. Innledning

Lokalt mellomlagring er en del av HTTP i Applikasjonslaget.

HTTP som er forkortelsen av “HyperText Transfer Protocol”, er protokollen som spesifiserer hvordan meldinger skal utveksles mellom klient og web-tjenesten. For å sikre at HTTP jobber på en mest mulig effektiv måte brukes blant annet lokalt mellomlagring.

Lokalt mellomlagring brukes for å lagre web-objekter lokalt på maskinen, også kjent som “web caching”. Dette er ofte bilder og HTML-sider.  Dette gjøres for å slippe og laste inn web-objektene på nytt når samme side leses flere ganger.

Det er ikke alle dokumenter som blir lagret som en lokal kopi. Dette gjelder dynamiske dokumenter som f.eks. kan være skrevet i PHP eller ASP. Disse blir alltid lastet ned på nytt.

Det mest brukte web server programmet er “Apache HTTP Server”, som brukes blant annet på operativsystemer som Window, OS X og Linux.


2. Ønsket funksjonalitet

Hovedhensikten med lokal lagring er å oppnå bedre responstid i fremvisning av nettsiden og begrense belastning av nettet unødvendig. Når web-objektene som skal lastes inn befinner seg i server cachen, slipper brukeren å vente unødvendig lenge på at de skal lastes ned fra nettet.

Lokal lagring gjør brukeropplevelsen bedre, men på bekostning at det krever lokal lagringsplass på brukerens PC.

Hvordan caching virker sett fra en sluttbrukers perspektiv:

web_cache.png

Denne fremvisningen er en forenkling av web caching prosessen. Som illustrert kan det virke som det tar like lang tid å hente fra cachen som fra web server, men dette er ikke tilfellet.

 

3. Virkemåte

Når nettleseren skal finne ut om et objekt er lokalt lagret, benyttes headerlinjen; “If-Modified-Since” i HTTP GET-forespørselen. Denne linjen sjekker om det finnes en nyere versjon av objektet. Hvis ikke, svarer webtjeneren med statuslinjen: “HTTP/1.1 304 Not Modified”, og dermed brukes versjonen av objektet som ligger i cache serveren. Hvis det finnes en nyere versjon av objektet vil webtjeneren sende  tilbake det objektet som ligger på webserveren med en 200 status.

Her sender du en GET-request med en “If-Modified-Since” for å sjekke er noen nyere versjon av objektet.


Her har vi fått svar om at den er “Not Modified”. Her kan vi også se at “Last-Modified” stemmer overens med det som er vist på forrige bilde. Det vil da si at vi bruker den versjonen som ligger inne i cachen.


      Her ser vi igjen en en GET-request som sjekker opp med en “If-Modified-Since”.

Her ser vi at “Last-Modified” har et senere tidspunkt enn “If-Modified-Since”, det vil si at webtjeneren må hente ut en nyere versjon av objektet og sender den tilbake med en 200 status.

 


4. Kilder

Hvor finner man mer aktuelt lesestoff om dette temaet?

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since

http://www.visolve.com/uploads/resources/ViSolve_Web_Caching.pdf

http://www.datakom.no/innhold/datakom-kap3.pdf


Brukt wireshark


  • No labels