Web poslužitelj je softver i hardver koji koristi HTTP i druge protokole za odgovor na zahtjeve klijenta upućene putem World Wide Weba. Njegov glavni zadatak je prikazati sadržaj web stranice, kao što su tekst, slike, video zapisi i aplikacije, korisnicima pohranjivanjem, obradom i isporukom web stranica. Web poslužitelji također se koriste u web hostingu, tj. hostingu podataka za web stranice i web aplikacije.
Računala koja hostiraju web stranice moraju imati softver web poslužitelja kako bi mogla pohranjivati, obrađivati i, što je najvažnije, prikazivati web sadržaj, poput dokumenata, slika ili videa.
Web poslužitelj obično se odnosi na hardver i softver koji rade zajedno.
Hardver web poslužitelja povezan je s internetom i omogućuje razmjenu podataka s drugim uređajima spojenim na web. To je računalo koje pohranjuje softver web poslužitelja i druge datoteke povezane s web mjestom, kao što je Hypertext Markup Language (HTML) dokumenti, slike i JavaScript datoteke, a instaliran je sa softverom web poslužitelja. Računalo uključuje brojne komponente, uključujući procesor, RAM, disk za pohranu velikog kapaciteta i jednu ili više kartica mrežnog sučelja.
Softver web poslužitelja kontrolira način na koji korisnik pristupa datotekama s hostom. Njegova primarna funkcija je prikazati sadržaj hostiranih web stranica na korisnikovom uređaju, npr. računalu, pametnom telefonu, tabletu itd. Softveru se pristupa putem naziva domena web stranica — više domena može biti hostirano na jednom web poslužitelju — i osigurava isporuku sadržaja stranice korisniku koji je zatražio.
Web poslužitelj razumije web adrese, poznate i kao URL-ovi. Poput hardvera web poslužitelja, softver web poslužitelja također se sastoji od nekoliko komponenti. Također, većina njih podržava i koristi HTTP za pregled web stranica. Osim HTTP-a, neki web poslužitelji podržavaju Simple Mail Transfer Protocol (SMTP) i File Transfer Protocol (FTP) za e-poštu, prijenos datoteka i pohranu.
Sadržaj objave
Za što se koriste web poslužitelji?
Web poslužitelji često dolaze kao dio većeg paketa programa povezanih s internetom i intranetom koji se koriste za sljedeće:
- Izrada i objavljivanje web stranica.
- Web hosting.
- Slanje i primanje e-pošte.
- Preuzimanje zahtjeva za FTP datoteke.
Neki web poslužitelji također pružaju platforme za razvoj web aplikacija, pridonoseći tako rastu globalne web infrastrukture.
Kako rade web poslužitelji
Proces web poslužitelja primjer je modela klijent-poslužitelj. U ovom modelu, klijent, obično uređaj krajnjeg korisnika zahtijeva od poslužitelja neke informacije. Poslužitelj potvrđuje zahtjev i zatim klijentu daje tražene informacije.
Kada korisnikov uređaj treba datoteku koja se nalazi na web poslužitelju, on pokreće zahtjev putem web preglednika, kao što su Google Chrome ili Firefox. Korisnik upisuje URL stranice na kojoj se nalazi potrebna datoteka. Preglednik traži datoteku putem HTTP-a. Kada web poslužitelj primi zahtjev, HTTP poslužitelj prihvaća zahtjev, pronalazi sadržaj i šalje ga natrag pregledniku putem HTTP-a.
Stoga, kada preglednik zatraži stranicu od web poslužitelja, odvija se ovaj niz koraka:
- Korisnik navodi URL u adresnoj traci web preglednika.
- Web-preglednik dobiva IP adresu naziva domene — bilo prevođenjem URL-a kroz sustav imena domene (DNS) ili traženjem u svojoj predmemoriji. Ovo dovodi preglednik do web poslužitelja.
- Preglednik traži određenu datoteku od web poslužitelja putem HTTP zahtjeva.
- Web poslužitelj odgovara, šaljući pregledniku traženu stranicu, opet, putem HTTP-a. Preglednik tada može prikazati web stranicu.
- Ako tražena stranica ne postoji ili ako nešto pođe krivo, web poslužitelj odgovara porukom o pogrešci: 404 Not Found.
Što je primjer web poslužitelja?
Postoji niz dostupnih web poslužitelja, uključujući sljedeće:
- Apache HTTP poslužitelj. Razvio ga je Apache Software Foundation, besplatan je web poslužitelj otvorenog koda za Windows, macOS i Unix operativne sustave (OS). Pokrenut 1995. godine, web poslužitelj je siguran i proširiv te je usklađen s HTTP standardima. U srpnju 2024. Zaklada Apache objavila je najnoviju verziju web poslužitelja: Apache httpd 2.4.62.
- Lighttpd. Ovaj fleksibilni web poslužitelj dizajniran je za učinkovito korištenje središnje procesorske jedinice i memorije i uključuje značajke kao što su FastCGI, Common Gateway Interface, provjera autentičnosti, kompresija izlaza i ponovno pisanje URL-a, što ga čini prikladnim za okruženja visokih performansi.
- Microsoftove internetske informacijske usluge. Razvio ga je Microsoft, IIS za Windows Server pruža skalabilnu i otvorenu arhitekturu za hosting web stranica i web aplikacija. Web poslužitelj je fleksibilan i jednostavan za upravljanje te uključuje mogućnosti za sigurno objavljivanje web sadržaja, delegiranje upravljanja konfiguracijom web stranice, centraliziranje upravljanja web farmom, smanjenje otiska poslužitelja, omogućavanje dinamičkog predmemoriranja i kompresije velike brzine te pružanje korisnih iskustava visoke vjernosti. Vlasnici web stranica mogu isprobati IIS s besplatnim probnim izdanjem Windows Servera.
- Nginx. Izgovara se kao “ENGINE X”, ovaj popularni HTTP web poslužitelj otvorenog koda poznat je po malom korištenju resursa i skalabilnosti. Omogućuje automatsko balansiranje opterećenja i visoku toleranciju na pogreške te ubrzava obrnuti proxy s predmemorijom i podržava Post Office Protocol 3, Internet Message Access Protocol i SMTP za autentifikaciju. Osim toga, podržava više protokola, uključujući HTTP/2, HTTP/3, Secure Sockets Layer (SSL) i Transport Layer Security Server Indication Name Name.
Dinamički naspram statičkih web poslužitelja
Web poslužitelj može se koristiti za posluživanje statičnog ili dinamičkog sadržaja. Statički odnosi se na sadržaj koji je prikazan kakav jest, dok dinamičan sadržaj se može ažurirati i mijenjati. Statički web poslužitelj sastoji se od računala i HTTP softvera. Smatra se statičnim jer poslužitelj šalje pregledniku unaprijed napisane hostirane datoteke takve kakve jesu. Također, svaki korisnik vidi isti sadržaj budući da poslužitelj isporučuje samo pohranjene datoteke. Ne postoji obrada na strani poslužitelja, interakcija s bazom podataka ili generiranje dinamičkog sadržaja specifičnog za korisnika u stvarnom vremenu.
Dinamički web preglednik sastoji se od web poslužitelja i drugog softvera, kao što je aplikacijski poslužitelj i baza podataka. Smatra se dinamičkim jer se aplikacijski poslužitelj može koristiti za ažuriranje bilo kojih hostiranih datoteka prije nego što se pošalju pregledniku. Web poslužitelj može generirati sadržaj tražeći ga u stvarnom vremenu od temeljne baze podataka. Također, ovaj se sadržaj isporučuje na temelju korisnikovog specifičnog unosa ili drugih varijabli.
To omogućuje isporuku interaktivnih značajki na web stranici, kao što su obrasci za prijavu i košarica za kupnju. Ove značajke, generirane dinamički iu hodu, mogu poboljšati korisnička iskustva. Međutim, povećana fleksibilnost procesa također ga čini kompliciranijim za projektiranje i implementaciju.
Skriptiranje na strani poslužitelja u web poslužiteljima
Mnogi osnovni web poslužitelji također podržavaju skriptiranje na strani poslužitelja, koje se koristi za korištenje skripti koje se izvode na poslužitelju. Cilj je prilagoditi odgovor na zahtjev klijenta te dinamički generirati i isporučiti web sadržaj u stvarnom vremenu.
Skriptiranje na strani poslužitelja izvodi se na računalu poslužitelja i obično ima širok skup značajki, što može uključivati pristup bazi podataka, autentifikaciju identiteta, push obavijesti, itd. Proces skriptiranja na strani poslužitelja također koristi Active Server Pages, PHP i druge jezike za skriptiranje. Ovaj proces također omogućuje dinamičku izradu HTML dokumenata.
Skriptiranje na strani poslužitelja je korisno jer omogućuje dinamičko generiranje sadržaja. Nedostatak mu je što uvodi puno kašnjenja jer svaki zahtjev svakog klijenta mora otputovati do poslužitelja prije nego što se može obraditi. Iz tog razloga mnogi web programeri pokreću više koda na strana klijenta za moderne web aplikacije. Uključivanje procesa na strani klijenta u arhitekturu aplikacije može smanjiti latenciju, a pritom i dalje prikazivati dinamički sadržaj.
Kako odabrati web server
Vlasnici i administratori web-mjesta trebali bi uzeti u obzir brojne čimbenike pri odabiru web-poslužitelja, uključujući sljedeće:
- Za što se web stranica koristi i može li web poslužitelj podržati te potrebe.
- Koliko dobro radi s OS-om i drugim poslužiteljima.
- Njegovo hosting okruženje.
- Njegova sposobnost rukovanja programiranjem na strani poslužitelja.
- Može li se nositi s iznenadnim porastom radnog opterećenja bez utjecaja na izvedbu (skalabilnost).
- Sigurnosne karakteristike.
- Alati za izdavaštvo, tražilicu i izradu web stranica koji dolaze s njim.
Također je važno provjeriti nudi li pružatelj brzu korisničku podršku, česte sigurnosne kopije podataka i jamstvo neprekidnog rada iznad 99%. Web poslužitelji također mogu imati različite konfiguracije i postaviti zadane vrijednosti. Za izradu web poslužitelja visokih performansi, velika propusnost i niska latencija pomažu.
Sigurnosne prakse web poslužitelja
Sveobuhvatne sigurnosne prakse mogu omogućiti sigurnije web poslužitelje i sigurnije web iskustvo za korisnike. To može uključivati sljedeće:
- Obrnuti proxy koji skriva interni poslužitelj i djeluje kao posrednik za promet koji potječe s internog poslužitelja.
- Ograničenja pristupa ograničavanjem pristupa web hosta infrastrukturnim strojevima ili korištenjem Secure Shell.
- Zakrpani i ažurirani web poslužitelji za smanjenje ranjivosti i podložnosti kibernetičkim napadima.
- Mrežni nadzor za otkrivanje neovlaštene ili potencijalno zlonamjerne aktivnosti.
- SSL za šifriranje osjetljivih podataka i njihovo nedostupnost bilo kome osim namjeravanom primatelju.
- Vatrozidi za nadzor HTTP prometa, blokiranje zlonamjernog prometa i zlonamjernog softvera i osiguravanje da je samo ovlaštenim korisnicima dopušten pristup web resursima.
Istražite razlike između Tomcat protiv Apache HTTP poslužitelja i HTTP naspram HTTPS-a. Također, DNS poslužitelj razrješava imena hostova web stranica u adrese internetskog protokola. Naučite kako riješiti uobičajene probleme s razrješenjem naziva u sustavima Windows, Linux i macOS.