Hypertext transfer protocol (HTTP) je aplikačný protokol určený na získavanie hypertextových dokumentov. Pôvodne bol vývoj HTTP koordinovaný organizáciami Worl Wide Web Consortium (W3C) a Internet Engineering Task Force (IETF). Protokol je založený na architektúre klient-server. Klientom je napríklad webový prehliadač, ktorý sa pripojí k webovému serveru a prostredníctvom HTTP zadá svoj požiadavok a server odošle odpoveď. Protokol je bezstavový. Na vytváranie spojenia sa najčastejšie používa protokol TCP/IP a port 80, hoci HTTP si tento protokol nevynucuje.
V súčastnosti najpoužívanejšie verzie HTTP sú HTTP/1.0 (1996, RFC 1945), ktorý používa samostatné spojenie na stahnutie každého dokumentu a HTTP/1.1, ktorý viacnásovne využíva jedno spojenie. Napríklad využije jedno spojenie na stiahnutie html dokumentu a obrázkov nachádzajúcich sa v tomto dokumente. Preto HTTP/1.1 je rýchlejší, lebo netrávi čas vytváraním spojení.
Ďalej sa požiadavok skladá z hlavičiek, ktoré pridavajú niektoré informácie, ako napríklad akceptovaný typ obsahu, jazyk, kódovanie a iné.
Odpoveď sa začína stavovým kódom. Číslica na mieste stoviek určuje typ kódu.
1xx: InformačnéĎalej takisto nasledujú hlavičky informujúce o typu obsahu dĺžke, obsahu a iné.
Najpopulárnejší HTTP server. Získame ho vo forme inštalačného balíčku a nainštalujeme. Na ovládanie serveru používame príkaz apachectl (apache2ctl). Pre spustenie použijeme apachectl start, pre reštartovanie apachectl restart.
Konfiguračné direktívy
ServerRoot: Určuje hlavný adresár, kde sa majú hľadať konfiguračne súbory.Moduly rozširujú funkčnost serveru. Moduly sa delia na interné(sú vkompilované do apache) a externé(nahrávajú sa podľa potrieb užívateľov). Aktiváciu modulov robíme direktívou AddModule. Externé moduly musíme najprv nahrať direktívou LoadModule.
Apache umožnuje vytvoriť viacej virtuálnych serverov na jednom počítači, ktoré môžu prijímať požiadvky na viacerých ip adresách, alebo na jednej ip adrese a požiadavky sa rozdelujú podľa dns mena.
Apache ponúka viaceré formy autentizácie
<VirtualHost *:443> LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so #načteme modul SSLEngine On #zapneme SSL engine SSLProtocol -all +SSLv3 +TLSv1 #zvolíme typ protokolu SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW #nastavíme parametry šifrování SSLVerifyClient none SSLCertificateFile /etc/apache2/ssl/apache2.pem #zadáme cestu k certifikátu serveru ServerAdmin admin@example3.cz DocumentRoot /www/example3/ # Další parametry </VirtualHost>
Apache ponúka dve metódy na sprístupnenie dokumentu vo viacerých jazykoch. Sú to variants file a multiviews(koncovky súborov).
Na využívanie multiviews musíme pre adresár s dokumentami nastaviť "options multiviews". Ďalej pomocou "AddLanguage" priradíme jednotlivým jazykom koncovky. Keď apache obdrží požiadavok z hlavičky požiadavku získa požadovaný jazyk a ako odpoveď pošle súbor s koncovkou daného jazyka.
<VirtualHost *> ServerName localhost DocumentRoot /var/www AddLanguage en .eng AddLanguage de .ger <Directory "/var/www"> Options +MultiViews Order allow,deny Allow from all </Directory> ..