Autor | Zpráva | ||
---|---|---|---|
rad Profil * |
#1 · Zasláno: 29. 9. 2011, 13:50:12
Chtel jsem se zeptat co je to presne eTag a jak bych ho mel konfigurovat ?
|
||
Davex Profil |
#2 · Zasláno: 29. 9. 2011, 18:26:59
ETag je volitelná položka v HTTP hlavičce, kterou může posílat server k případnému rozlišení, zda se obsah na požadovaném URL od posledně změnil či nikoliv. Často se ke zjištění změny používá čas z hlavičky Last-Modified , takže je ve většině případů ETag zbytečný.
Proč bys ho chtěl konfigurovat? |
||
rad Profil * |
#3 · Zasláno: 29. 9. 2011, 19:48:50
no nechtel bych ho modifikovat zda se ze server zadny eTag neposila tak bych ho spis chtel povolit
|
||
rad Profil * |
#4 · Zasláno: 29. 9. 2011, 19:56:07
taky jsem se chtel zeptat kdyz v hlavicce pozadavku mam toto : Accept-Language cs,en-us;q=0.7,en;q=0.3
tak potom kdyz je stranka v jinem jazyce bude to mit nejaky vliv na vyhledavani ? |
||
rad Profil * |
#5 · Zasláno: 29. 9. 2011, 20:00:03
ok omlouvam se uz to asi chapu je jasne ze etag se neprirazuje strance ale napriklad obrazkum nebo css ...
a hlavicka pozadavku si myslim ze to bude asi tim ze pouzivam firefox v cestine diky |
||
Davex Profil |
#6 · Zasláno: 29. 9. 2011, 21:25:02
rad:
„server zadny eTag neposila tak bych ho spis chtel povolit“ „etag se neprirazuje strance ale napriklad obrazkum nebo css“ Já ho naopak všem souborům vypínám konfigurační volbou Apache: FileETag None ETag smysl pouze pro dynamické stránky, když není jasný čas poslední změny a změna se dá zjistit podle ETag u v keši nebo v databázi.
„hlavicka pozadavku si myslim ze to bude asi tim ze pouzivam firefox v cestine“ Prohlížeč si hlavičkou Accept-Language říká o stránku v některém uživateli preferovaném jazyce. Ve Firefoxu se nastavují v Nástroje » Možnosti » Obsah » Vybrat jazyky. Web musí automatický výběr jazyka podporovat.
|
||
DoubleThink Profil * |
#7 · Zasláno: 30. 9. 2011, 02:40:34
Technicky je ETag otisk (hash). Většinou ne obsahu souboru, ale času jeho poslední úpravy, což jeho význam trochu devalvuje. Klienti se pak mohou dotazovat hlavičkou If-None-Match, jestli je otisk stále shodný. Pokud ano, server místo souboru odešle jen prázdný stav 304 Not Modified.
Stejně funguje i hlavička Last-Modified, kterou pak klient ověřuje dotazem If-Modified-Since. Zajímavá prasárna je použít ETag místo cookie jako unikátní tracking-identifikátor. Davex: „Já ho naopak všem souborům vypínám konfigurační volbou Apache:“ Celkem nevidím důvod - jak jsem psal, hash se nepočítá z obsahu, zátěž tu žádná nevzniká. Připravíš tím klienty o jednu (ze dvou) metod ověření čerstvosti cache-dat. Předpokládanou expiraci (Expires) je samozřejmě vhodné poslat taky. |
||
rad Profil * |
#8 · Zasláno: 30. 9. 2011, 09:06:42
reaguji na Davexe
Davex: „Já ho naopak všem souborům vypínám konfigurační volbou Apache:“ proc ? jeste dynamicka stranka - to znamena stranka ktera se dynamicky meni v case ? takze vlastne vsechny stranky jako blog diskuze news atd atd .. ?? takze o pouziti eTag se stara server a komunikuje s prohlizecem navic se pouziva Last-Modified ..ok snad chapu |
||
Leo Profil |
#9 · Zasláno: 30. 9. 2011, 09:21:28
rad:
„takze o pouziti eTag se stara server“ U statických souborů ano, u php (např.) ne. Osobně dávám u dynamických stránek přednost ETagu před Last-Modified. Leo |
||
Davex Profil |
#10 · Zasláno: 30. 9. 2011, 18:22:07
rad:
„Já ho naopak všem souborům vypínám konfigurační volbou Apache:“ „proc ?“ Protože jsem průkopník a jdu proti proudu :-). Je to hlavně z toho důvodu, že když je kopie webu na jiném úložišti nebo na webserveru v jiné lokalitě, tak budou mít kopie stejného souboru různý ETag a při přepnutí se mohou zbytečně odesílat, přestože se nezměnily.
|
||
rad Profil * |
#11 · Zasláno: 1. 10. 2011, 16:09:46
to Leo
a jak se da pro php soubory etag nastavit ? to davex jasne chapu.. takze je lepsi posilat last modified jak to resis u php souboru ? kazdopadne diky uz se mi to snad vyjasnuje |
||
rad Profil * |
#12 · Zasláno: 2. 10. 2011, 13:13:15
jak to tedy resit u dynalickych - souboru s php priponou ? jak to resite co posilate a jak ? nejak netusim kam bych mel umistit napriklad last modified do hlavicky ?
a co kdyz se soubor zmeni ? napriklad diskuze ... |
||
rad Profil * |
#13 · Zasláno: 2. 10. 2011, 13:19:52
nebo jinak jak nastavit eTag dynamickym strankam - souborum php ?
|
||
Davex Profil |
#14 · Zasláno: 2. 10. 2011, 13:48:06
Obecně nestačí jen nastavit
ETag , který by měl být jakýmsi otiskem obsahu (jak psal [#7] DoubleThink). Musí kolem toho být také nějaká další logika, když aplikace dostane od prohlížeče hlavičku If-None-Match , aby dokázala zjistit, zda se obsah změnil a má ho posílat nebo jen oznámit, že se nic nezměnilo. Bez toho to nemá smysl.
|
||
Leo Profil |
#15 · Zasláno: 2. 10. 2011, 14:03:04
rad:
„jak to tedy resit u dynalickych - souboru s php priponou ?“ Musíte mít někde je každé stránce uložený aktuální ETag a ten při (podstatné) aktualizaci změnit. Leo |
||
Leo Profil |
#16 · Zasláno: 2. 10. 2011, 14:12:51
Osobně používám toto:
$etag = "\"6\""; preg_match_all("/\"(.*)\"/U",stripslashes($_SERVER['HTTP_IF_NONE_MATCH']),$shody); if ((in_array($etag,$shody[0]))or(in_array('"*"',$shody[0]))) { header("HTTP/1.1 304 Not Modified"); header("ETag: $etag"); exit; } else { header("Cache-Control: must-revalidate,max-age=0"); header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); header("ETag: $etag"); } [...nasleduje html...] Leo |
||
Časová prodleva: 13 let
|
0