Apache (httpd.apache.org) este cel mai folosit server Web din lume, conform unui studiu al organizatiei Netcraft (pentru detalii accesati
www.netcraft.com).
Printre caracteristicile care i-au adus titlul de “cuceritor” se numara: · Stabilitatea si numarul relative mic de problem pe care le poate genera;
- Faptul ca este gratis si avand codul-sursa deschis(open source);
- Flexibilitatea si usurinta cu care se poate extinde
- Posibilitatea rularii sub diferite sisteme de operare, ca Linux, BSD, Windows.
-
Din pozitia de lider pe piata serverelor Web, Apache este “responsabil” pentru sustinerea majoritatii aplicatiilor Web 2.0 sau a
platformei Web 2.0. Pentru a realiza acest lucru, Apache a fost construit pe principiul unui sistem neproprietar, care functioneaza pe baza unor protocoale si standard deschise.
Functionarea serverului Apache Asemenea oricarui alt server, Apache ruleaza in fundal sub forma unui
daemon. Scopul sau este sa astepte cereri si sa le serveasca in conformitate cu specificatiile din fisierele de configurare.
Iata modelul de functionare a celor mai cunoscute MMP(modul de multiprocesoare):
- MMP prefork – se porneste de la un numar prestabilit de procese care realizeaza deservirea propriu-zisa a clientilor; apoi se ajusteaza numarul acestora in functie de cel al cererilor concurente;
- MMP cu theard-uri – seamana cu modelul precedent, cu exeptia faptului ca la baza serviri cererilor se afla theard-ul (firul de executie), si nu procesorul.
- MMP per process-copil – se folosesc fire de executie intr-o maniera similara modelului precedemt; se pornesc un numar prestabilit de procese care ramane fixat , variind numarul de fire per proces, astfel simplificandu-se folosirea gazdelor virtual;
- MMP WindowsNT – a fost scris special pentru platform Windows care este centrata pe fire de executie, si nu pe procese. Se creaza un process-parinte si unul copil, cel din urma servind toate cererile via fire de executie. Modelul foloseste caracteristici specifice platformei pentru o mai buna performanta.
Bucla de servire incearca sa ofere raspunsuri la urmatoarele intrebari:
- La ce se refera identificatorul web (URI) – poate fi un fisier , un document generat de un script sau de un modul intern;
- De unde vine cererea – aspect util pentru controlul accesului;
- De la cine vine cererea – informativ folosita pentru autentifiere;
- Cum se vor dealoca resursele folosite – cere module au fost implicate in servirea cererii, care zone de memorie trebuie dealocate s.a.m.d.
Unitatea de baza prin care se fac aceste modificari este
handler-ul – functia de tratare a pasului respectiv.
Etapele parcurse in creerea unui modul Apache Practic, creerea unui modul Apache inseamna scrierea unor functii de tratare pentru o parte dintre etapele ce apar in timpul rularii serverului. Iata prototipul unei functii de tratare standard a severului Apache:
static int handler (request_rec * r)