Apache Web Server – Web-ul în 100 de paşi

februarie 2, 2023

Î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. 

Cum a apărut 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, 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 Rob McCool, care era student la acea vreme, 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. 

Serverul web NCSA nu a fost perfect – modulul său de autentificare prin parolă nu a îndeplinit în totalitate cerințele Wired. Deci, 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, dar McCool și echipa de început de la Mosaic plecaseră în masă în Silicone Valley, mulți dintre ei atrași de Marc Andreessen la Netscape.

Behlendorf vedea Web-ul dezvoltându-se la fel ca PC-ul, monopolizat de o singură companie, și era hotărât să facă tot ce putea pentru a se asigura că un server web bun rămâne disponibil public. Le-a scris apoi celorlaţi programatori de la NCSA, așa că le-a sugerat 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 și 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. La mai puțin de un an mai târziu, î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ă. 

Brian Behlendorf - creatorul Apache
Logo Apache

Ce este Apache?

Serverul 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, dar 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, dezvoltarea Apache. 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ă”. Acest lucru se întâmpla într-un context în care se părea că internetul deschis – bazat pe schimbul liber de cod sursă deschis. Brian Behlendorf – inițiatorul numelui – ș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, care preciza “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””.

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, cu sediul în SUA, a acuzat Fundația Apache Software Foundation de însușire culturală și 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 pe Apache includ modulul de extensie externă, mod_gzip, 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 Apache poate servi 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.

Apache Web Server
Apache Web Server

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 😅

0 Comentarii

0 Comentarii

Înaintează un Comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Alte Articole

Ecommerce – Web-ul în 100 de pași

Ecommerce – Web-ul în 100 de pași

Odată cu apariția Internetului, o mare parte din viața noastră de zi cu zi s-a mutat în online. Dacă înainte ne puteam face cumpărăturile doar fizic, acum găsim online absolut orice poftim, la orice oră din zi sau noapte. Și toate acestea datorită ecommerce-ului, care...

Job în programare. Merită să faci facultate?

Job în programare. Merită să faci facultate?

Cum să înveţi programare? Vrei să înveţi programare dar nu te-ai convins încă dacă chiar merită? Ei bine, dacă ştii programare, reprezinţi clar o resursă valoroasă pentru angajatori. Mai mult, poți chiar lucra independent. Pe măsură ce industria de programare creşte,...

Meme – Web-ul în 100 de pași

Meme – Web-ul în 100 de pași

 Data trecută am vorbit despre conținutul viral, iar dacă ai citit articolul, probabil îți amintești de faptul că, printre exemple de conținut viral se numărau și meme-urile. Ei bine, ele au devenit o parte așa importantă din viața noastră încât dedicăm un articol...