Manuál k webovému serveru shttpd


Štìpán Roh

Verze 0.3.1
Revize dokumentu 1.2 (17.5.2009)

Motto: 's' jako stupid.

Vlastnosti

shttpd je urèen vesmìs k osobnímu použití. Mùže ho spustit i obyèejný uživatel, i když musí používat èísla portù vìtší jak 1024. Podporuje rozumnou podmnožinu HTTP/1.0 a HTTP/1.1 (bez virtuálních serverù, podmínìných GET a persistentních spojení). Umí pouze statické stránky, žádná dynamika (SSI, PHP a spol.). Z toho plyne, že zvládá pouze metody GET, HEAD, OPTIONS a TRACE. Také nepodporuje žádné moduly.

Ke svému bìhu potøebuje konfiguraèní soubor. Standardnì je to shttpd.cfg v aktuálním adresáøi, ale jméno se dá zmìnit parametrem -f (viz shttpd -?).

Práce serveru se ukonèí pomocí Ctrl-C (pracuje-li na popøedí) nebo posláním nìkterého ze signálù SIGINT, SIGHUP, SIGTERM.

Vnitønosti

Bez podpory vláken (dá se zjistit pomocí shttpd -?) zvládá pouze jeden požadavek najednou. Jsou-li zakompilována vlákna, tak se vlákna vytváøí tak dlouho než obslouží všechny požadavky nebo než poèet bìžících vláken dosáhne zadaného limitu.

Syntax konfiguraèního souboru

Poznámky se uvozují znakem '#'. Konfiguraèní soubor se skládá z øádkù tvaru <jméno_promìnné> <hodnota>. Øetìzcové hodnoty se uvádí v uvozovkách - v nich je možno používat i sekvence zaèínající na '\' ('"' znak uvozovky, '\' znak zpìtné lomítko, 'n' znak nová øádka, 't' znak tabulátor, 'r' znak posun vozíku alias CR).

Použitelné promìnné :

min_threads
poèet vláken, které existují po celou dobu bìhu serveru (úèinkuje pouze pøi zakompilované podpoøe vláken); implicitnì : 4
max_threads
maximální poèet souèasnì existujících vláken (není-li zakompilována podpora vláken, tak urèuje pouze max. poèet èekajících požadavkù); implicitnì : 16
port
TCP/IP port, na kterém má server naslouchat požadavkùm (standardní HTTP port je 80); implicitnì : 8080
access_log
jméno souboru, do kterého se mají ukládat informace o spojeních - má øádky formátu : "[datum a èas] adresa odkud "první øádka požadavku" stavový kód délka pøenesných dat" Zadáte-li jako jméno '-' bez uvozovek, nebude se zapisovat nikam; implicitnì : "access_log.shttpd"
error_log
jméno souboru, do kterého se mají ukládat ruzné hlášky serveru - informaèní i chybové. Zadáte-li jako jméno '-' bez uvozovek, nebude se zapisovat nikam; implicitnì : "error_log.shttpd"
log_level
nejnižší úroveò hlášek, které se mají zapisovat do error logu. Možné hodnoty jsou (od nejnižší k nejvyšší) : LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERR, LOG_LEVEL_SYS, LOG_LEVEL_MAX (nebude se zapisovat nic); implicitnì : LOG_LEVEL_INFO
error_log_stderr
1, pakliže se na stderr (standardní chybový výstup) má zapisovat to samé, co do error logu - 0 jinak; implicitnì : 1
doc_root
adresáø s dokumenty k zobrazení. Musí na konci mít znak lomítko '/'; implicitnì : "html/"
remote_names
1, pakliže se do access logu ukládá jmenná adresa - 0 pro èíselnou adresu (pøeklad z èíselné na jmennou mùže zdržovat); implicitnì : 1
status_page
má složitìjší formát <stavový kód> <øetìzec>, který pøiøazuje HTML odpovìï urèitému stavovému kódu (napø. 404, což je Not Found). Zadáte-li jako øetìzec '-' bez uvozovek, pošle se pouze HTTP hlavièka Status s prázdným tìlem. První sekvence '%s' v øetìzci se nahradí jménem dokumentu, ke kterému se daná chyba vztahuje; implicitnì : všechny chyby generované serverem jsou definovány (jsou to 301, 400, 403, 404, 405, 505).
index_file
jaký soubor má server hledat, když obdrží požadavek na adresáø bez jména souboru; implicitnì : "index.html"
media_type
media (MIME) typ, který se má vracet v odpovìdi, nejde-li zjistit z typu posílaných dat; implicitnì : "text/plain"
media_config
jméno souboru s definicí media (MIME) typu. Zadáte-li jako jméno '-' bez uvozovek, tak se žádný nenaète. Soubor má øádky formátu : "media (MIME) typ  [pøípona1 pøípona2 ...]" popøípadì s komentáøovými øádky zaèínajícími '#'. Pøípony jsou bez úvodní teèky. Tento soubor slouží k rozeznání typu odesílaných souborù na základì jejich pøípony; implicitnì : "mime.types"

Zmìny mezi verzemi

Zmìny z verze 0.3 na verzi 0.3.1 (17.5.2009)

Zmìny z verze 0.2 na verzi 0.3 (3.10.2000)

Zmìny z verze 0.1 (5.1.2000) na verzi 0.2 (25.2.2000)

Známé chyby

Možná vylepšení do budoucna

Štìpán Roh <src@post.cz>


This document was generated using AFT v5.096