WWW, HTTP servery (s diakritikou)

Jiří Lengsfeld, xlengsf@fi.muni.cz


Obsah


http

HyperText Transfer Protocol - protokol, který definuje pravidla komunikace mezi klientem a serverem.
Protokol HTTP patří mezi protokoly aplikační vrstvy, je bezstavový, vychází striktně z modelu dotaz-odpověď. Protokol HTTP prošel během několika let své existence nezanedbatelným vývojem. Jeho první verze byla označena 0.9, poté přišla verze 1.0 definována RFC 1945 a poslední verze 1.1 definována RFC 2068 (RFC jsou dostupné na URL: ftp://ftp.fi.muni.cz/pub/rfc )

Metody :

GET Klient chce získat informaci, určenou URL.
HEAD Má význam podobný, jako GET. Server však má poslat jen stavový řádek a hlavičky, nikoli tělo dokumentu.
POST Server má předat tělo dotazu jako data pro prvek, identifikovaný URL dotazu. Metodu POST lze používat například pro vytváření nových souborů v adresáři nebo (nejčastěji) pro předání dat ke zpracování CGI skriptem.

HTTP verze 1.1 přidalo i metody pro další činnosti. Umožňuje např. umístění odeslaných dat přímo na server (metoda PUT) nebo naopak likvidaci některého z nabízených souborů (DELETE).

Struktura HTTP dotazu :

Pomocí hlaviček může klient svůj dotaz upřesnit či doprovodit doplňkovými informacemi.

Hlavičky zasílané klientem:

Accept:

Příklad komunikace :

metoda GET

Metoda POST

- mějme CGI skript index.cgi :

Příklad komunikace pomocí metody POST :


APACHE

Apache je populární WWW server, který je zdarma. Patří k jedněm z nejrozšířenějších WWW serverů. Podobně jako jiné i on umožňuje programům přistupovat přes API.
Aktuální stabilní verze je Apache 2.0.44.

instalace

$ ./configure
$ make
$ make install

Při instalaci můžeme k ./configure přidávat různé parametry :

Po instalaci provádíme konfiguraci v souborech : PREFIX/conf : http.conf, srm.conf, access.conf.

moduly

Apache má dva druhy modulů, moduly zakompilované v sobě a moduly, které se spouštějí při startu (DSO - Dynamic Shared Objects).

Zakompilované moduly (statické) se přidávají do Apache před vlastní instalací apache. Ten je potom při instalaci přidá do jádra ...

Příklad (přidání mod_perl)

Potom se při instalaci Apache přidá do ./config řádek : --activate-module=src/modules/perl/libperl.a

Dynamicky přilinkovatelnou knihovnu můžeme přeložit pomocí programu apxs (v již nainstalovaném Apači). Potom však ještě musíme do http.conf přidat řádek : --enable-shared=perl.


Virtuální servery

Nastavíme v souboru httpd.conf :

Listen: Umožňuje přiřadit serveru Apache specifické adresy IP nebo porty, kromě implicitní

BindAddress: Pomocí této volby můžete podporovat virtuální hostitele. Tato direktiva se používá proto, aby sdělila serveru, na které adrese IP má naslouchat. Může obsahovat buď "*", adresu IP nebo plně kvalifikovaný název internetové domény.

NameVirtualHost 192.168.1.11

Příklad viruálního hostitele :


CGI

Common Gateway Interface - část Web serveru, která umožňuje spouštět a komunikovat s programy běžícími na Web serveru. Výstup programu je předán prohlížeči
V httpd.conf musi byt zapnut modul .cgi v Options musí být uvedeno All, nebo ExecCGI

Příklad cgi skriptu interpretovaného shell-em

Příklad stejného skriptu interpretovahéno Perlem