HTTP ETag
ETag (for enhedsmærke , såsom ' enhedsidentifikator ') er et headerfelt introduceret i HTTP 1.1 . Det bruges til at bestemme ændringer i den ønskede ressource og bruges hovedsageligt til cache , dvs. undgå overflødige dataoverførsler.
specifikation
ETag-værdien er en hvilken som helst tegnstreng indeholdt i anførselstegn, som også kan identificeres W/som en svag ETag med præfikset " ". Den specificerende BNF :
ETag = "ETag" ":" entity-tag entity-tag = [ weak ] opaque-tag weak = "W/" opaque-tag = quoted-string
- Stærk ETag
- En stærk ETag kan kun administreres af flere enheder i en ressource, hvis de er helt identiske (bit for bit).
- Svag ETag
- En svag ETag (identificeret ved et "
W/" præfiks) kan bruges af flere enheder af en ressource, hvis de er ækvivalente med hinanden, dvs. adskiller sig ikke markant fra et semantisk synspunkt.
Ofte er genereringen af ETag-værdien baseret på hash af ressourceindholdet eller hvornår den sidst blev ændret.
procedure
Første gang der kræves en ressource, sender serveren en ETag-værdi, der er specifik for denne ressource i ETagoverskriftsfeltet, som gemmes lokalt af klienten sammen med ressourcen. (Fig. 1) Hvis den samme ressource anmodes om igen, sender klienten If-None-Matchden tidligere gemte ETag-værdi i overskriftsfeltet . (Fig. 2) På serversiden sammenlignes den sendte ETag-værdi med den aktuelle, og hvis den stemmer overens, besvares statuskoden 304 . (Fig. 3) I dette tilfælde sendes ressourcens data ikke, og klienten bruger de lokalt gemte data.
Problemer
ETag kan have en negativ indvirkning, hvis den implementeres forkert: Hvis ETag f.eks. Genereres fra inoden på det dokument, der skal leveres, er denne værdi kun gyldig på dette system. Hvis dokumentet nu leveres af flere servere (fx til distribution af serverbelastning ), kan en ny anmodning fra klienten behandles af en anden server med en anden ETag-værdi, hvilket igen resulterer i overførsel af den samme fil på trods af ETags. Af denne grund anbefales det ikke at bruge inoden, når ETag-værdien genereres.
For eksempel skal en hash-værdi af filens indhold eller et unikt versionnummer af filen bruges til at generere ETag .
Derudover kan brugere identificeres ved hjælp af ETag, hvis en webserver genererer klientspecifikke ETags.
Weblinks
- ETag i HTTP 1.1 specifikation af den W3C
- Apache HTTP-serverdokumentation - FileETag-direktivet
- lighttpd serverdokumentation - etag.use-inode
Individuelle beviser
- ↑ Ikke-sletbar cookie tillader browseridentifikation, der er adgang til den 26. november 2013
- ↑ Brugersporing på nettet: Forsker advarer om snigende sporingsteknologi , der blev åbnet den 29. november 2013
