Webszerver
A Wikipédiából, a szabad lexikonból.
A webszerver egy kiszolgáló, mely elérhetővé teszi a helyileg tárolt weblapokat a HTTP protokollon keresztül. A HTTP webszerverekhez webböngészőkkel lehet kapcsolódni.
Egy webszerver két típusú lehet:
- egy erre a célra kialakított számítógép;
- egy számítógépes program, mely a háttérben futva biztosítja a weblapok elérését.
Tartalomjegyzék |
[szerkesztés] Általános funkciók
Bár a webszerverek többnyire különböznek a részletekben, az alapvető funkcióik azonosak. Minden webszerver HTTP kéréseket fogad a hálózatról, és HTTP válaszokat küld vissza. A HTTP válasz az esetek többségében egy HTML dokumentum, de lehet még egyszerű szöveges fájl, kép, vagy más típusú fájl is.
[szerkesztés] Útvonalak feloldása
A webszerverek a kliensektől kapott kérésekben úgynevezett URL útvonalakat kapnak, melyeket aztán a helyi fájlrendszerben található erőforrásokra fordítanak le. A kliens által megadott útvonal relatív a webszerver gyökérmappájához képest.
Vegyük például az alábbi, kliens által megadott URL kérést:
http://www.pelda.com/utvonal/fajl.html
A kliens webböngészője ezt elemezve létrehoz egy kapcsolatot a www.pelda.com kiszolgálóhoz, és elküldi a következő HTTP 1.1 kérést:
GET /utvonal/fajl.html HTTP/1.1 Host: www.pelda.com
A www.pelda.com címen található webszerver ezt az útvonalat hozzáfűzi a gyökérmappájához, mely egy UNIX gépen általában a /var/www/htdocs. Az eredmény egy helyi erőforrás lesz a fájlrendszerben:
/var/www/htdocs/utvonal/fajl.html
A webszerver ellenőrzi, hogy létezik-e ez a fájl, beolvassa, és egy válaszban elküldi a kliensnek. A válasz tartalmazni fogja a megfelelő fejléceket, valamint magát a fájlt.
[szerkesztés] Modulok
Lehetőség van a válaszok feldolgozása előtt, az esetlegesen a kérésben érkezett adatok feldolgozására és ennek eredményenek visszaküldésére. Ilyenkor a szerver oldalon futó webszerver-modulok illetve a webszerver által meghívott CGI rutinok végzik el ezt a feladatot. A programrészletek (webszerver-modulok) rendszerint, a HTML kódba vannak beágyazva és maga a webszerver-program hajtja ezeket végre. Ilyenek például a(z):
Ezenkívül léteznek még a CGI (Common Gateway Interface) rutinok, ami minden olyan program lehet, amely azon a rendszeren, ahol a webszerver fut, működőképes. Jelentősen lassabb a fenti megoldásnál, hiszen minden egyes futáskor az adott programnak a rendszer tárterületet, processzoridőt stb. kell adjon, ami nagyobb mennyiségű programnál jelentős sebességcsökkenést eredményez. Leginkább ez az oka, hogy ez a technika, ma már kevéssé használatos.
Ennek a sebességproblémának a kiküszöbölésére fejlesztették ki a FastCGI-t, amely az erős konkurencia miatt (JSP, PHP) nem igazán terjedt el.
Vannak áthidaló megoldások, amelyek a "hagyományos" CGI programokat a webszerveren "belül" futtatják, ilyen pl. a mod_perl amely egy Apache modul, aminek a használatával a Perl programok jelentős sebességnövekedéssel futtathatók, kiküszöbölvén így a CGI hátrányait.
[szerkesztés] Szoftverek
A legnépszerűbb HTTP webszerverek a következők:
- Apache HTTP Server az Apache Software Foundation terméke.
- Internet Information Services (IIS) a Microsoft terméke.
- Zeus Web Server a Zeus Technology terméke.
- Sun ONE a Sun Microsystems terméke.
- Cherokee HTTP Server – egy gyors és rugalmas webszerver, szabad szoftver.
- Xerver egy nyílt forráskódú, ingyenes, GPL licencelt szoftver.
- IBM Lotus Domino.
- MyServer egy gyors, biztonságos, sokoldalú webszerver, a MyServer Project terméke.
- SimpleW egy nagyon egyszerű és ingyenes webszerver, valamint JSP motor.
Az Apache messze a legnépszerűbb webszerver, mely a piac 70%-át uralja a 2005. májusi felmérések alapján.
[szerkesztés] Külső hivatkozások
- RFC 2616 – A HTTP 1.1 protokoll leírása
- Netcraft Web Server Survey – A webszerverek eloszlása