WWW, HTTP Servery

Viktor Michálek,xmichal4(závin)fi.muni.cz

Obsah

Protokol HTTP

HTTP je bezstavový protokol založený na modelu klient-server. Má textovou podobu a patří do rodiny aplikačních protokolů nad TCP.
Komunikace probíhá tak, že klient zasílá požadvky formou metod a server na ně odpovídá zprávami v jejichž hlavičce je stavový kód a další důležité informace, např.: MIME.

Verze protokolu

HTTP metody

Typy požadavků HTTP 1.1
Název Popis
GET Požadavek na objekt (stránka/soubor), uvedený v parametru
HEAD Jako GET, ale předá se pouze hlavička (metada objektu)
POST Předá data na server
PUT Nahraje soubor na server
DELETE Smaže soubor na serveru
TRACE
Pošle zpět obdržený požadavek.
Klient tak může zjistit jak byl požadavek cestou pozměněn.
OPTIONS Dotaz na server, jaké metody podporuje.
CONNECT Spojí se s uvedeným objektem přes uvedený port.
Používá se při průchodu skrze proxy pro ustanovení kanálu SSL.

Stavové kódy

Název Popis Příklad
1xx Informační zpráva pro klienta
101 Switching Protocols - změna protokolu
2xx
Úspěch
200 OK
3xx
Přesměrování
301 Moved Permanently - trvalé přesměrování
4xx
Chyba na straně klienta
404 Not Found - soubor/cesta nenalezena
5xx
Chyba na straně serveru
500 Internal Server Error

Apache 2.2

Apache je již od roku 1996 nejrozšíženějším na internetu používaným web serverem.

Konfigurační soubory

Konfigurační soubory web serveru apache nalezneme (v případě Debian 6.0) v adresáři /etc/apache2
zde je jeho struktura:
proto06:/etc/apache2> ls -w 1 -F
apache2.conf - Hlavní konfigurační soubor (v některých distribucích pro změnu httpd.conf)
conf.d/ - Ostatní konfigurace
envvars - Nastavení proměnných prostředí
httpd.conf - viz. apache2.conf
magic - Soubor s "magickými" konstantami pro určení MIME-typu souborů
mods-available/ - Dostupné moduly a jejich konfigurační soubory
mods-enabled/ - Symlinky na moduly (soubory v mods-available/), které se mají načíst
ports.conf - Konfigurace portu na jakých má Apache naslouchat
sites-available/ - Konfigurační soubory s definicemi virtuálních serverů
sites-enabled/ - Symlinky aktivující virtuální servery z mods-available/

Vybrané konfigurační direktivy podle souborů

Konfigurace virtuálních serverů (soubory v /etc/apache2/sites-available)

Definice výchozího serveru je v /etc/apache2/sites-available/default, např.:
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	# Hlavni slozka s www dokumenty
	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	# Nastaveni cgi 
	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		# AllowOverride None - ignoruj .htaccess
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>
	
	# Nastaveni logovani
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
    # Alias pro slozku s omezenim pristupu
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        # Povol přístup z localhostu
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>

Virtuální servery je možno definovat na základě:

TLS/SSL

Je mezivrstva nad transportní vrstvou (TLS = Transport Layer Security), která umožňuje bezpečnou komunikaci  mezi klientem  a serverem.

Literatura