În articolul de astăzi, vom vorbi despre Apache, cel mai popular software de server web din lume care oferă aproximativ două treimi din toate site-urile web.
Începuturile Apache
În 1993, Marc Andreessen și Eric Bina au creat primul browser grafic din lume, Mosaic. Atunci, lucrurile în domeniu tehnologiei s-au schimbat pentru totdeauna. Pentru că, dintr-o dată, Web-ul nu a mai fost un domeniu exclusiv al academicienilor şi profesioniştilor.
Apache a fost dezvoltat la Centrul Național pentru Aplicații de Supercomputing al Universității din Illinois. Alături de browserul Mosaic, a fost serverul web NCSA. Programat de studentul Rob McCool acesta a devenit rapid serverul ales pentru primul val de site-uri web comerciale. Tot atunci, Brian Behlendorf, care avea 21 de ani, crea primul site web al revistei Wired, anume Hotwired.
Cum a apărut Apache?
Serverul web NCSA nu a fost perfect de la început. Modulul său de autentificare prin parolă nu a îndeplinit în totalitate cerințele Wired. La fel ca mulți profesionişti de atunci, Nehlendorf și-a „suflecat mânecile” și s-a pus pe remediat problema. Anterior, se zice că el ar fi trimis patch-ul lui McCool pentru a fi inclus în următoarea lansare. Însă McCool și echipa de început de la Mosaic plecaseră în masă în Silicone Valley, mulți dintre ei fiind atrași de Marc Andreessen la Netscape.
Behlendorf vedea Web-ul dezvoltându-se la fel ca PC-ul, monopolizat de o singură companie. Era astfel hotărât să facă tot ce putea pentru a se asigura că un server web bun rămâne disponibil public. Le-a sugerat programatorilor de la NCSA să-şi unească forţele pentru a aduna toate actualizările într-un singur loc și pentru a revizui ei înșiși codul NCSA.
Șapte programatori au răspuns apelului lui Behlendorf. Până în aprilie 1995 rescriseseră complet programul. Pentru că au reprezentat o ultimă rezistență împotriva comercializării Web-ului, echipa a devenit Apache Group. În decembrie 1995, Apache a depășit serverul NCSA ca fiind cel mai popular de pe internet – o poziție pe care încă o păstrează.
Ce este Apache?
Apache HTTP este un server web gratuit și open-source pentru mai multe platforme.
Marea majoritate a instanțelor Apache HTTP Server rulează pe o distribuție Linux. Însă, versiunile actuale rulează, de asemenea, pe Microsoft Windows, OpenVMS și o mare varietate de sisteme de tip Unix.
Aşa cum am spus, era bazat inițial pe serverul HTTPd al NCSA. Apache a jucat un rol cheie în creșterea inițială a World Wide Web, depășind rapid NCSA HTTPd ca server HTTP dominant. În 2009, a devenit primul server web Software care a deservit peste 100 de milioane de site-uri web.
De unde vine numele?
Potrivit Fundației Apache Software, numele său a fost ales “din respect pentru diferitele națiuni nativ-americane denumite colectiv Apache, cunoscute pentru abilitățile lor superioare în strategia de război și pentru rezistența lor inepuizabilă”.
Internetul era deschis, bazat pe schimbul liber de cod sursă deschis. Brian Behlendorf și-a văzut efortul oarecum paralel cu cel al lui Geronimo, șeful ultimului dintre popoarele Apache libere. Dar a recunoscut că numele “reprezintă și un joc de cuvinte drăguț cu “a patchy web server” – un server făcut dintr-o serie de patch-uri”.
Există și alte surse pentru teoria jocului de cuvinte “patchy” Software, inclusiv documentația oficială a proiectului din 1995. Aceasta preciza că “Apache este un nume drăguț care a rămas. S-a bazat pe niște coduri existente și pe o serie de patch-uri software, un joc de cuvinte cu serverul “A PAtCHy””.
Originile adevărate ale numelui Apache
Dar, într-un interviu din aprilie 2000, Behlendorf a afirmat că originile Apache nu au fost un joc de cuvinte, declarând:
Numele a apărut literalmente din senin. Aș vrea să pot spune că a fost ceva fantastic, dar a apărut din senin. L-am pus pe o pagină și apoi, câteva luni mai târziu, când a început acest proiect, le-am arătat oamenilor această pagină și am spus: “Hei, ce părere aveți despre această idee?” … Cineva a spus că i-a plăcut numele și că este un joc de cuvinte foarte bun. Iar eu am întrebat: “Un joc de cuvinte? Ce vrei să spui?” El a spus: “Ei bine, noi construim un server dintr-o grămadă de patch-uri de software, nu? Deci este un server web cu petice”. Am zis: “Oh, bine.” …
În ianuarie 2023, organizația non-profit Natives in Tech a acuzat Fundația Apache Software Foundation de însușire culturală. I-a îndemnat să schimbe numele fundației și, în consecință, și numele proiectelor software pe care le găzduiește.
Atunci când Apache rulează sub Unix, numele procesului său este httpd, prescurtare de la “HTTP daemon”.
Caracteristici
Apache suportă o varietate de caracteristici, multe dintre acestea fiind implementate ca module compilate care extind funcționalitatea de bază. Acestea pot varia de la scheme de autentificare, până la suportul pentru limbaje de programare pe server precum Perl, Python, Tcl și PHP.
Modulele de autentificare populare includ mod_access, mod_auth, mod_digest și mod_auth_digest, succesorul lui mod_digest. Alte caracteristici includ suport pentru Secure Sockets Layer și Transport Layer Security (mod_ssl), un modul proxy (mod_proxy), un modul de rescriere a URL-urilor (mod_rewrite), fișiere jurnal personalizate (mod_log_config) și suport pentru filtrare (mod_include și mod_ext_filter).
Metodele de compresie populare includ modulul de extensie externă, mod_gzip. Acesta a fost implementat pentru a ajuta la reducerea dimensiunii paginilor web servite prin HTTP. ModSecurity este un motor open source de detectare și prevenire a intruziunilor pentru aplicații web. Jurnalele Apache pot fi analizate prin intermediul unui browser Web folosind scripturi gratuite, cum ar fi AWStats/W3Perl sau Visitors.
Găzduirea virtuală permite ca o singură instalare Apache să deservească mai multe site-uri web diferite. De exemplu, un computer cu o singură instalare servește simultan exemplu.com, exemplu.org, test47.test-server.exemplu.edu, etc.
Apache dispune de mesaje de eroare configurabile, baze de date de autentificare bazate pe DBMS, negociere de conținut și suportă mai multe interfețe grafice de utilizator (GUI).
Suportă autentificarea prin parolă și autentificarea prin certificat digital. Deoarece codul sursă este disponibil în mod gratuit, oricine poate adapta serverul pentru nevoi specifice și există o bibliotecă publică mare de add-on-uri Apache.
Dezvoltare
Proiectul este un efort colaborativ de dezvoltare de software care are ca scop crearea unui server HTTP (Web) robust, de calitate comercială, bogat în caracteristici și cu cod sursă disponibil gratuit. Este gestionat în comun de un grup de voluntari din întreaga lume, care utilizează internetul și web-ul pentru a comunica, planifica și dezvolta serverul și documentația aferentă. Acest proiect face parte din Apache Software Foundation. În plus, sute de utilizatori au contribuit la proiect cu idei, cod și documentație.
Securitate
Apache, ca și alte programe de server, poate fi piratat și exploatat. Principalul instrument de atac este Slowloris, care exploatează un bug în software. Acesta creează mai multe socket-uri și le menține pe fiecare dintre ele vii și ocupate, trimițând mai mulți octeți (cunoscuți sub numele de “keep-alive headers”) pentru a anunța serverul că computerul este încă conectat și că nu se confruntă cu probleme de rețea.
Dezvoltatorii au abordat problema Slowloris cu mai multe module pentru a limita daunele provocate; modulele mod_limitipconn, mod_qos, mod_evasive, mod security, mod_noloris și mod_antiloris au fost toate sugerate ca mijloace de reducere a probabilității unui atac Slowloris de succes. Începând cu Apache 2.2.15, livrează modulul mod_reqtimeout ca soluție oficială susținută de dezvoltatori.
Dacă ţi-a plăcut articolul de astăzi, nu uita să arunci un ochi pe blog pentru alte articole din seria Web-ul în 100 de paşi! De asemenea, ne poţi urmări şi pe TikTok, şi pe Insta pentru postări – aproape – zilnice