Пређи на садржај

ХТТП ЕТаг

С Википедије, слободне енциклопедије

ЕТаг или ознака ентитета, је део ХТТП протокола светске мреже. То је један од неколико механизама који ХТТП пружа за валидацију веб кеш-а, и који омогућава клијенту да направи условне захтеве. ЕТаг може да се користи за контролу оптимистичне конкурентности[1] , као помоћ у спречавању истовременог ажурирања ресурса да замене једни друге.

Етаг је индетификатор додељен од стране веб сервера на специфичну верзију ресурса пронађену на УРЛ-у. Ако ресурс на том УРЛ-у садржи неке промене, ЕТаг је додељен. У овом погледу, ЕТагови су по употреби слични отисима прстију, јер се брзо могу упоредити и тиме установити да ли су две репрезентације ресурса исте.

Генерисање ЕТагова

[уреди | уреди извор]

Употреба ентитет-ознака у ХТТП заглављу је опциона, односно није обавезна као нека друга поља у ХТТП 1.1 заглављу. Начин на који се генеришу ознаке ентитета није прецизно дефинисан ХТТП спецификацијом.

Уобичајне методе за генерисање ЕТага укључују коришћење хеш функције отпорне на креирање колизије над садржајем ресурса, хеш временске ознаке последње измене, или чак само ознаку верзије.

Да би се избегло коришћење кеш података, методе које се користе за генерисање ЕТагова треба да гарантују (колико је то практично) да је сваки Етаг јединствен. Ипак, функција за генерисање ЕТага се може сматрати "корисном" уколико се математички може доказати да ће се дупликати мењу ЕТаговима јављати "довољно ретко", чак и ако је њихов настанак могућ.

Познато је да неке раније функције за креирање контролне суме, као што су ЦРЦ32 и ЦРЦ64, имају проблем са колизијом, па стога нису добри кандидати за генерисање ЕТагова.

Јака и слаба валидација

[уреди | уреди извор]

ЕТаг механизам подржава и јаку и слабу валидацију. Разликују се по присуству почетног знака W/ у ЕТаг идентификатору; на пример:

"123456789"—jaka ETag validacija
W/"123456789"—slaba ETag validacija

ЕТаг са јаком валидацијом означава да је садржај два ресурса у бајт идентичан и да су сва друга поља (нпр. Цонтент-Лангуаге) остала непромењена. Јака валидација дозвољава кеширање и склапање парцијалних одговора.

ЕТаг са слабом валидацијом означава да су два ресурса семантички еквивалентни, што значи да су за практичну сврху заменљиви и могу да се користе њихове кеширане копије. Ресурси нису нужно идентични у бајт. Слаби ЕТагови могу бити корисни у случајевима у којима јаки веб сервери не могу практично да их генеришу, као што је случај са динамички генерисаним садржајем.

Типична употреба

[уреди | уреди извор]

Убично, када је УРЛ преузет, сервер ће вратити ресурс заједно са одговарајућом вредношћу ЕТага која се налази у ХТТП пољу "ЕТаг":

ETag: "686897696a7c876b7e"

Клијент тада може да одлучи да кешира ресурс заједно са ЕТагом. Касније, ако клијент жели да поново преузме исти УРЛ, послаће претходно сачувану копију ЕТага уз захтев у пољу "Иф-Ноне-Матцх".

If-None-Match: "686897696a7c876b7e"

На овај накнадни захтев, сервер сада може да упореди ЕТаг добијен од стране клијента са ЕТагом тренутне верзије ресурса. Ако се ЕТаг вредности поклапају, што значи да ресурс није промењен, тада сервер може да пошаље назад веома кратак одговор са статусом ХТТП 304 Not Modified. Статус 304 говори клијенту да је његова сачувана верзија добра и да треба да је користи.

Међутим, ако се вредности ЕТага не поклапају, што значи да је ресурс вероватно промењен, онда се враћа цео одговор, укључујучи и садржај ресурса, баш као да ЕТагови нису коришћени. У овом случају клијент може да одлучи да замени претходно сачуване верзије са новим враћеним ресурсом и новим ЕТагом.

ЕТаг вредности могу да се користе у систему контролисања веб страница. Ефикасно праћење веб страница је отежано чињеницом да већина веб сајтова нема постављена ЕТаг заглавља за веб странице. Када веб контролор нема наговештаја да ли је веб садржај промењен, цео садржај мора бити враћен и анализиран, коришћењем пребројавања ресурса и за издавача и за претплатника.

Референце

[уреди | уреди извор]

Спољашње везе

[уреди | уреди извор]