Domů arrow Domů arrow Vyhodnocení obsahu
Vyhodnocení obsahu PDF Tisk E-mail
Zhlédnutí: 2280
Hodnocení čtenářů: / 0
SlabéVynikající 
Napsal filbar   
Pátek, 09 březen 2007
Aktualizováno ( Středa, 28 únor 2007 )
V dalším pokračování seriálu o populárním www serveru Apache si konečně povíme o modulu mod_negotiation, nebo-li jak automatizovat vyhodnocení obsahu.

Vyhodnocení obsahu

Dále se tedy budeme zabývat vyhodnocením obsahu, nebo-li modulemmod_negotiation. Tento modul umožňuje rozlišit obsah podle kódování,znakové sady, jazyka, nebo MIME typů. Jistě jste si třeba v prohlížečiFirefox všimli možnosti určovat pořadíjazyků jaké se mají pro www stránky použít, pokud jsou k dispozici vevíce jazycích a právě toto je na straně serveru úlohou tohoto modulu.Pokud má být několik akternativních obsahů v jednom souboru, použijemetzv. typovou mapu, pro rozdělení obsahu do několika souborů se hodíMultiViews.

Jako první si ukážeme použití typových map, kteréjsme vlastně už poznali minule při vysvětlování chybových stránekApache. Typové mapy v konfiguračním souboru Apache zapneme direktivou
AddHandler type-map .pripona
Jako přípona se nejčastěji používá koncovka .var, ale nic nám nebránípoužít koncovku jinou. Do souborů s typovými mapami lze umístit mimominule zmíněných direktiv Content-Language(určuje jazyk dokumentu) aContent-Type(typ dokumentu podle MIME) i další jakoContent-Length(délka dokumentu), Content-Encoding(MIME kódovánídokumentu, které musí být přiřazené direktivou AddEncoding),URI(projakou adresu se má typová mapa mapa použít, pokud není definicesoučástí souboru s typovou mapou. Užitečné třeba pro použitíí různýchtypů obrázků podle preferencí prohlížeče) a nakonec samozřejmě definiceznaků, kterými bude ukončeno tělo typové mapy(Body).

Současně s těmito direktivou Content-Type lze uvésttaké váhu, což je číslo od 0.0 do 1.0, které zapíšeme do direktivy qs.Priorita je řazena sestupně, takže největší priorita je 1.

Použití obrázků na HTML stránce si tedy můžeme definovat takto:
URI: obrazek

URI: obrazek.png
Content-Type: image/png; qs=0.9

URI: obrazek.gif
Content-Type: image/gif; qs=0.85

URI: obrazek.txt
Content-Type: text/plain; qs=0.10

V tomto případě má nejvyšší prioritu obrázek png, dále gif a nakonec textový popis obrázku v textovém souboru.

Prioritu jazyka musíme nastavit jinak. K tomu slouží direktivyLanguagePriority a ForceLanguagePriority v konfiguračním souboruApache. Takto třeba nastavíme prioritu jazyků, že největší přednost bude mít čeština, potom angličtina a nakonec němčina:
LanguagePriority cs en de

DirektivaForceLanguagePriority, která určije co se má provést, pokud je vícemožných vyhodnocení priority jazyka, požívá několik parametrů:

  • Prefer-Pro vysvětlení použijeme příklad výše. Jesliže mají jazyky cs a de v prohlížeči stejnou prioritu, pak se pokužije český jazyk.

  • Fallback-pomůže vyřešit situaci, v případě, že má prohlížeč nastavený jazyk, který se v seznamu nenachází, pak se použije první jazyk z direktivy LanguagePriority(v příkladu výše čeština).

  • None-Tuto funkci zcela vypne a při nejednoznačném vyhodnocení priority jazyků zobrazí chybu 300; pokud nenalezne odpovídající jazyk ukáže chybu 406.

První dva parametry lze samozřejmě použít současně.

Na konec tohoto dílu si ještě vysvětlíme jaký vliv má direktivaMultiViews. Tato direktiva nám totiž umožňuje částečně vyhodnoceníobsahu zautomatizovat. Zapisujeme jí do definice adresáře vkonfiguračním souboru Apache. V případě, že máme direktivu zapnutou, awww prohlížeš si žádá třeba soubor pojmenovaný jako obrázek, ale naserveru se nacházejí soubory pojmenované obrazek.png a obrazek.gif asoubor obrazek neexistuje, pak se v závislosti na nastavení prioritypng a gif v prohlížeči použije obrazek.png, nebo obrazek.gif. Takovéchování zapneme zápisem:
Options MultiViews

Volbou MultiViews lze také ovlivnit hledání indexového souboru(DirectoryIndex). Stačí zadat jméno indexu bez přípony
DirectoryIndex index

Chování MultiViews nastavíme direktivouMultiViewsMatch. Parametrem NegotiatedOnly zajistíme vyhodnoceníadresáře, podle modulu mod_negotioation(Content-Language, Content-Type,Content-Encoding...). Další varianta je Filters|Handlers, kdy sepoužijí nastavení definovaná direktivami AddHandler,AddOutputFilter(vizminulý díl). Jestliže chceme ošetřit stavy, kdy Apache nerozpoznápříponu je zde ještě k dispozici poslední parametr Any, alenedoporučuje se, protože může vést k nepředvídatelnému chování, kdy setak návštěvníci mohou dostat k souborům, ke kterým neměli mít přístup.

Tímto bychom pro tentokrát skončili a příště se můžete těšit na šifrování spojení pomocí protokolu https.

Komentářů
Přidat Nový Hledat RSS
Přidat komentář
Jméno:
Email:
 
Website:
Název:
UBBKód:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.22 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
< Předch.   Další >

Zapomenuté heslo
Nemáte účet? Vytvořte jej!
Skype: My status bartfil
Jabber: bartmann@rupyhost.cz

Doporučujeme

Příběhy psů z útulků