- klient se spojí se serverem (přes TCP či TLS/SSL) a aplikují se Vstupní filtry
- server dostane adresu (kam klient chce přistoupit, např. ”/” nebo “/book/15”) a přeloží URI na konkrétní soubor v souborovém systému
- zkontroluje přístup (může se se mnou klient bavit?)
- Autentizace uživatele
- kontrola práv pro přístup uživatele (Autorizace)
- kontrola přístupu založená na jiných kritériích (podle IP adresy - IP whitelist např.)
- zjištění MIME type souboru v dotazu a výběr handleru, který ho zpracuje
- Apache handler vybere podle direktiv v daném umístění souboru, podle hlaviček (
Content-Type
, …), podle koncovky souboru
- server pak může vybrat správnou jazykovou mutaci stránek (kterou má klient preferovanou) - viz Dojednávání obsahu v Apache httpd
- fixups - co se doposud nestihlo udělat
- spuštění handleru a generování výstupu - tohle je reálné vyřízení požadavku příslušným handlerem
- aplikování Výstupní filtry
- zaslání požadovaných dat klientovi (s příslušnými hlavičkami)
- zalogování přístupu (požadavku a výsledku)

Handlery
- když chci specifikovat custom chování pro různé požadavky/obsah (jakým způsobem bude požadavek zpracován a jak bude vygenerován obsah)
- je to mechanismus nebo funkce, která zpracuje tělo požadavku
- např.
- core handler v Apache - zpracovává statické soubory
- zpracování dynamického obsahu (PHP Handlery) - mod_php
- externí CGI skript - viz CGI
- přesměrování na speciální moduly
AddHandler cgi-script .cgi
v Konfigurace Apache httpd nám řekne, že .cgi
soubory bude zpracovávat CGI handler
SetHandler
přiřadí handler pro celý kontext (kontejner)
- Actions - triggery, když se objeví zadaný MIME type, tak ho předej konkrétnímu skriptu, který tento požadavek vyřídí (taky je to handler)
- lze načítat moduly (které mají nějakou funkcionalitu a také mohou registrovat svoje handlery)
Filtry
- umí zpracovávat data před i po zpracování (např. kontrola, komprese, úprava hlaviček apod.)
- je to takový řetězec filtrů, kterým data protékají
Vstupní filtry
- zpracovávají příchozí požadavek (včetně vstupu metody POST), mění se a kontrolují se data DŘÍVE než se předají handleru
- např. úprava chunked zprávy do kontinuálního proudu, dekódování obsahu, kontrola škodlivého obsahu
- direktiva
SetInputFilter
mění nastavení
Výstupní filtry
- aplikují se na odpověď z handleru před tím, než se odpověď pošle klientovi
- např. komprimování obsahu, aby byl datový objem menší
- chunked encoding (posílá obsah po částech)
- upravuje hlavičky (např. na CORS, security hlavičky)
- Server Side Includes
- direktiva
SetOutputFilter