|
Dokumentace
![]() CSáček nabízí
![]()
Základ - URL stránkyStránku napište v kódu, který odpovídá zvolenému implicitnímu kódu serveru (ve skutečnosti kódování stránky není omezeno). Vystavte ji, jak je obvyklé. Jediné, co se změní, bude URL, kterým je třeba se odkázat na stránku. Jestliže URL stránky bez překódování by bylohttp://www.kdesi.cz/cesta/stranka.htmlbude URL téže stránky při požadavku jejího překódování do sedmibitového ASCII http://www.kdesi.cz/toASCII/cesta/stranka.htmlza předpokladu, že používáte Apache CSáček. Tento odkaz však předpokládá, že předem víte, jaký kód bude uživatel vyžadovat. To často nemusí být pravda. V takovém případě doporučuji spustit CSáček v módu whichcode - URL bude vypadat nějak takto: http://www.kdesi.cz/whichcode/cesta/stranka.htmlNa základě externí šablony bude vygenerována stránka, kde bude uživateli bude oznámeno, že cílový dokument obsahuje diakritická znaménka a umožní mu zvolit kód, který považuje za optimální.
Druhá možnost je použít toGUESS. V tomto módu se CSáček
pokusí zjistit, jaké kódování a jazyk klient podporuje a přesměruje
klienta na URL, které odpovídá jeho jazykovým/kódovacím schopnostem.
Momentálně každému klientovi z Česka vnutí ISO-8859-2
(klient, který by nerozuměl tomuto kódování se dá považovat za
nefunkční), ostatním pak ASCII. Pokud by měl uživatel
tu smůlu, že používá nefunkčního klienta, může si typ kódování
později změnit explicitně přes whichcode.
Zachování kódování při odkazechCSáček od verze 2.0 automaticky přepisuje odkazy v dokumentu tak, aby se v daném URL opět objevil a zachovala se tak informace o vybraném kódování. Nemusíte se tedy o odkazy jakýmkoli způsobem starat, CSáček vše upraví za Vás. Je nutno pouze zachovat opatrnost při skládání odkazů v JavaScriptu - tyto odkazy samozřejmě CSáček nemůže změnit. Pokud je to jen trochu možné, použijte tady relativní odkazy.Pokud se odkazujete na jiné servery s CSáčkem a chcete, aby se při odkazech zachovala informace o uživatelem vybraném kódování, musíte CSáčkovi seznam takových serverů sdělit. CSáček pak upravuje URL v dokumentech podobným způsobem, jako při odkazech v rámci "svého" serveru. Podrobněji viz popis konfiguračního příkazu Apache csacekServers. CSáček jako Apache modul automaticky přidá do seznamy všechny virtuální servery WWW serveru, na kterém běží. Samozřejmě lze na stránku napsat obvyklý seznam odkazů pro zobrazení dokumentu v ASCII, ISO-8859-2 či CP1250: <A HREF="/toASCII/">ASCII/</A>
Kóduje se pouze text a HTMLCSáček kóduje pouze dokumenty typu text/html (HTML dokumenty) a obecně text/* (jako textová data). Dokumenty, které mají neznámý textový typ (např. text/javascript) jsou zpracovány jako text/plain, tedy nerozeznávají se tam žádné HTML značky a nepřepisuje se URL.Dokumenty netextových typů (tj. cokoliv co má MIME typ jiný než text/*) předá CSáček beze změny. Kvůli rychlosti zpracování CGI CSáček implicitně pokládá za "překódovatelné" soubory s příponou .html, .htm, .txt. O všechny ostatní dokumenty požádá zpět WWW server a rozhodne se, zda daný dokument kódovat nebo ne, podle informací, které server vrátí (zpracování přes další požadavek je samozřejmě pomalejší). Apache/ISAPI CSáček má informaci o typu souboru vždy jednoduše k dispozici, proto tam neexistuje žádný pevný seznam přípon a vše záleží jen na konfiguraci serveru. Změna výchozího kóduImplicitní výchozí kód, ve kterém budou psány dokumenty, určuje správce serveru při instalaci CSáčku. Mělo by se jednat o kód, ve kterém bude vytvářena většina stránek (nejlépe všechny). Pokud autor používá jiné kódování, má v základě dvě možnosti:
Účinnost příkazu MYCHARSET, popř. META tagu začíná místem, kde byl uveden. Přestože CSáček povoluje použít META tag s vyznačením kódování několikrát, toto není platné užití podle HTML standardu. Podpora chráněných stránekNásledující text platí pouze pro (Fast)CGI CSáček; pokud je CSáček součást WWW serveru (Apache modul nebo ISAPI filter), použijí se bezpečnostní mechanismy daného serveru bez toho, že by je CSáček nějak ovlivňoval.
Při přímém předávání obsahu souboru CGI CSáček dává pozor, jestli
se na "cestě" k němu nevyskytuje nějaký konfigurační soubor
(standardně .htaccess). Pokud ano, o dokument požádá
server. Lze samozřejmě upravit zdrojový kód serveru tak, aby tuto informaci CGI skriptům předával. Jedná se ale o možné bezpečnostní riziko a tedy toto nedoporučuji. Pokud potřebujete překódování veřejně nepřístupných stránek, použijte CSáček jako Apache modul. Vypisování konfigurace CSáčkaPokud do browseru zadáte URL na stránku na serveru s CSáčkem a připojíte k URL ?csacek_info, CSáček vytvoří a vypíše krátkou informační HTML stránku s popisem konfigurace pro toto URL a seznamem zakompilovaných nastavení. Tato vlastnost je užitečná zejména při aktualizaci či ladění konfigurace CSáčku pro daný server. Tuto vlastnost lze při kompilaci vypnout.Apache CSáčekCSáček na Apache byl původně na 1.2.4. Nyní je primárně vyvíjen na Apache 1.3.19 s tím, že je možné ho používat i na Apache 1.1.1 i Apache 1.2.X. Není nutné patchovat server, CSáček modul se do serveru přidává jako kterýkoli jiný modul. Pod Apache 1.3.X je ho možné dokonce (s pomocí axps) zkompilovat jako DSO modul a nahrávat do serveru dynamicky.Jak se konfiguruje Apache verzeSeznam konfiguračních direktiv viz konfigurační direktivy CSáčku.
Apache CSáček se nastavuje pomocí sady direktiv, uvedených
v konfiguračních souborech serveru (globálním httpd.conf
nebo případných .htaccess).
CSáček lze nastavovat různě pro každý virtualní server i
adresář, je třeba jen direktivů uvést v příslušné sekci
<Location> či <VirtualHost>.
Příklad z konfigurace: csacekEngine On Podpora SSLApache-SSLU modulu Apache-SSL stačí od verze 1.17 v souboru apache_ssl.c změnit SSL_IS_OPTIONAL na TRUE. Apache-SSL pak bude fungovat i bez CSáčku, pouze se přidá několik testů na obsah některých struktur. Tyto testy jsou nutné proto, aby CSáček byl schopen během své práce dočasně "vypnout" SSL. Komunikace s klientem (čtení vstupu od něj i výstup ze serveru) jsou stále v SSL, toto jen vypne SSL při vnitřním zpracování tak, aby CSáček data dostal nezakódovány.mod_sslOd verze 2.1.2 funguje CSáček i společně s mod_ssl. Nejsou třeba žádné úpravy kódu. Od verze 2.1.9 funguje CSáček i v případě, že se nepoužívá autentifikace uživatelů.Při použití LoadModule v konfiguraci serveru je třeba zařídit, aby se CSáček modul nahrál dříve než mod_ssl. Toto je nutné kvůli tomu, že CSáček potřebuje v určité fázi zpracování změnit vnitřní struktury spojení, ale příslušný kód musí být spuštěn po mod_ssl. Moduly jsou v každé fázi zpracování provolávány v opačném pořadí než byly nahrány, tedy CSáček musí být do serveru nahrán před mod_ssl. StrongholdOd verze 2.1.3 CSáček funguje i pod Strongholdem. Testováno na verzi Stronghold 2.4.2 pro NetBSD/i386.ISAPI CSáčekV rámci vývoje webových stránek Masarykovy univerzity byl financován i vývoj CSáčku pro IIS, tj. ISAPI filtru. ISAPI CSáček je nyní dopracován a od verze 2.1 je k dispozici jako komerční software.ISAPI CSáček překódovává korektně výstup z ASP, CGI, server extensions (včetně FP extensions) a samozřejmě statické stránky, funguje i pri provozu s SSL a je velmi rychlý - podle namátkových testů asi dvakrát rychlejší než CZFILTER. Pokud máte zájem ISAPI CSáček vyzkoušet, je k dispozici časově omezená verze, která přestane fungovat přibližně po měsíci. Objednat CSáček lze na samostatné stránce. Jak se konfiguruje ISAPI verzeSeznam konfiguračních direktiv viz konfigurační direktivy CSáčku.ISAPI CSáček je konfiguruje pomocí záznamu v MS Windows Registry. Jeho větev je HKEY_LOCAL_MACHINE\Software\CSacek. Záznam v CSáčkovském klíči Registry platí jako "globální". Je ale také možno nastavit vlastnosti CSáčka pro jednotlivé virtuální servery. Konfigurace pro každý virtuální server je uvedena v podklíči CSáček klíče - jako jméno klíče se použije název virtuálního serveru. Je možno uvést i port, od jména serveru je oddělen dvojtečkou. Pokud je port uveden, konfigurace platí jen při přístupu na tento konkrétní port, pokud ne, platí pro jakýkoli přístup na daný virtuální server. Příklad názvu podklíče: www.muj.czV konfiguraci virtuálního serveru mohou být uvedeny všechny direktivy stejně jako v globální. Hodnoty nastavení csacekServers jsou ale globální a sdílené všemi virtuálními servery - nemá význam mít nastavení různě pro různé servery. Po každé změně konfigurace je nutno přestartovat Web server - jen tak se zajistí, aby CSáček změněný záznam z registry znovu načetl. Konfigurace CSáčkaNěkteré vlastnosti CSáčka lze ovlivnit vhodným nastavením. Pro CGI CSáčka to lze pouze v čase kompilace (možnost run-time konfigurace není pro CGI rozumná). Chování Apache CSáčku a ISAPI CSáčku lze ale poměrně jednoduchým způsobem ovlivnit i později - nastavením v kofiguraci serveru (Apache) nebo nastavením v registry (ISAPI). Zde je popis jednotlivých direktiv:
Direktivy, které jsou nadále podporovány v řadě 2.1.*, ale budou zrušeny ve verzi 3.0:
![]() Seznam příkazůPříkazy v CSáčku se uzavírají mezi <? a ?>. ? je použito proto, že se jedna o speciální SGML "tag", určený pro vkládání příkazů jazyků vložených (embedded) do SGML dokumentu. Kvůli kompatibilitě s SaCzechem je podporováno také <!-- a -->.
Příklad použití: <? SET EXECCMDS=YES ?> Od verze 3.0 bude podporována pouze (nová) notace <?csacek příkaz ?>. Obecně platná pravidla:
Příkazy:... a popis:V následujícím popisu hranaté závorky označují části, které nemusí (ale mohou) být zadány. U každého příkazu je uvedena jeho syntax, jeden jednoduchý příklad použití, dále pak krátký popis, co daný příkaz dělá a poté případně přehled voleb či parametrů, které můžete příkazu zadat. U některých je uveden ještě odkaz na další, podrobnější příklady užití.
Zastaralé příkazyNásledující příkazy jsou stále podporovány v řadě 2.1.*, ale budou odstraněny ve verzi 3.0:
![]()
|