Apache este cel mai utilizat software de server web. Dezvoltat si intretinut de Apache Software Foundation, Apache este un software open source disponibil gratuit care ruleaza pe 67% din toate serverele web din lume. Este rapid, fiabil si sigur dar si foarte personalizabil cu ajutorul extensiilor si modulelor pentru a satisface cerintele multor medii diferite. Vom vedea in continuare ce este Apache Web Server, care sunt caracteristicile si avantajele acestuia, cum functioneaza si cine ar trebui sa il utilizeze.

Ce este un server web?

Ca sa facem o analogie, un server web este precum o gazda care va intampina la restaurant. Cand ajungeti intr-un restaurant gazda va intampina, va verifica informatiile de rezervare si va conduce la masa. Similar cu gazda restaurantului, serverul web verifica pagina web pe care ati solicitat-o si v-o livreaza pentru vizualizare.

Ca sa ducem analogia si mai departe, un server web Apache este un fel de administrator al restaurantului. Se ocupa de comunicarea dvs. cu website-ul (bucatarie), se ocupa de solicitarile dvs., se asigura ca alti angajati (module) sunt pregatiti sa va serveasca. Este  cel care curata mesele (memorie, cache, module), le goleste si le pregateste pentru clientii noi.

Practic, un server web este software-ul care primeste solicitarea dvs. de a accesa o pagina web. Ruleaza cateva verificari de securitate privind solicitarea dvs. HTTP, apoi va duce la pagina web. In functie de pagina pe care ati solicitat-o, pagina poate solicita serverului sa ruleze cateva module suplimentare in timp ce genereaza documentul pe care vi-l serveste.

De ce un server web Apache?

Apache este un software open source ceea ce inseamna ca codul sursa original este disponibil gratuit pentru vizualizare si modificare. Fiind open source, Apache a devenit foarte popular printre dezvoltatori care si-au construit si configurat propriile module pentru a aplica functionalitati specifice si pentru a imbunatati caracteristicile sale de baza. Apache exista din 1995 si reprezinta o tehnologie de baza care a contribuit la stimularea dezvoltarii Internetului inca de la inceputuri.

Unul dintre avantajele Apache este capacitatea sa de a gestiona cantitati mari de trafic cu o configuratie minimala. Este usor scalabil iar cu constructia sa modulara puteti configura Apache sa faca ceea ce doriti si cum doriti. In plus, puteti elimina modulele nedorite pentru a face Apache mai rapid si mai eficient.

Apache poate fi instalat pe Linux, MacOS si Windows. Daca stiti cum sa configurati Apache pe Linux, veti putea administra Apache si pe Windows si Mac. Singurele diferente sunt caile directoarelor (directory path) si procesele de instalare.

Caracteristici ale Apache Web Server

  • Gestionarea fisierelor statice
  • Module dinamice incarcabile
  • Auto-indexare
  • .htaccess
  • Compatibil cu IPv6
  • Suporta HTTP/2
  • Suporta conexiuni FTP
  • Compresie si decompresie Gzip
  • Limitarea latimii de banda
  • Scripturi Perl, PHP, Lua
  • Load Balancing
  • Session tracking
  • Rescriere URL-uri
  • Geolocalizare bazata pe adresa IP

Cum functioneaza Apache Web Server?

Apache functioneaza ca o modalitate de a comunica prin retele de la client la server, utilizand protocolul TCP/IP. Apache poate fi utilizat pentru o mare varietate de protocoale, dar cel mai comun este HTTP/S.

HTTP/S sau Hyper Text Transfer Protocol (S inseamna „Secure”) este unul dintre protocoalele principale de pe web si protocolul pentru care Apache este cel mai cunoscut.

HTTP/S este utilizat pentru a defini modul in care mesajele sunt formatate si transmise pe web, cu instructiuni pentru browsere si servere despre cum sa raspunda la diferite cereri si comenzi. Hypertext Transfer Protocol Secure utilizeaza de obicei portul 443, protocolul nesecurizat utilizand portul 80. Mesajele trimise de clienti (browsere) se numesc cereri (requests) iar mesajele trimise de servere se numesc raspunsuri (responses).

Serverul Apache foloseste fisiere de configurare (config files) in care sunt apelate module in functie de setup-ul dorit. In mod implicit, Apache asteapta cereri pe adresele IP stabilite in fisierele sale de configurare.  Cu directiva Listen, Apache poate accepta si directiona traficul specific catre anumite porturi si domenii.

In mod implicit, directiva Listen foloseste pe portul 80, dar Apache poate fi legat de porturi diferite pentru domenii diferite, permitand gazduirea mai multor site-uri web si domenii diferite pe un singur server. Puteti avea domeniul1.ro sa asculte pe portul 80, domeniul2.ro pe portul 8080 si domeniul3.ro pe portul 443, toate folosind HTTPS.

Odata ce un mesaj ajunge la destinatie   acesta trimite o notificare sau un mesaj ACK, care   confirma expeditorului   ca datele au ajuns cu succes. Daca exista o eroare la primirea datelor sau s-au pierdut unele pachete in tranzit, destinatarul  trimite un mesaj „Not Acknowledged” sau NAK, pentru a informa expeditorul ca datele trebuie sa fie retransmise.

Alternative la Apache Web Server

Desi serverele web Apache sunt foarte populare ele nu sunt singurele servere web de pe piata. O serie de alternative pentru serverele HTTP Apache includ:

  • NginX
  • LiteSpeed WS
  • Apache Tomcat
  • Node.js
  • Lighttpd
  • Cherokee
  • Microsoft IIS
  • Appweb
  • Hiawatha

De-a lungul ultimelor decenii, Apache s-a dovedit a fi un element esential si cadrul multor stack-uri populare si chiar „coloana vertebrala” a Internetului timpuriu. Chiar daca popularitatea sa este in scadere si optiunile de alegere a serverelor web sunt in crestere, Apache joaca in continuare un rol esential in multe stack-uri  infrastructuri.