U komunikaciji putem Interneta sudjeluju dvije strane: klijent i poslužitelj (server).
Klijent (korisnikov web preglednik) šalje zahtjev, npr. adresu neke stranice, a poslužitelj isporučuje odgovor, koji sadrži HTML kod tražene stranice (i zajedno s njim binarne datoteke, npr. slike, video...), što će klijent interpretirati i prikazati korisniku kao web stranicu.
Komunikacija između poslužitelja i klijenta odvija se putem HTTP protokola, koji se sastoji od HTTP zahtjeva i odgovora.
Komunikacija preko Interneta je dvosmjerna – i klijent može unutar HTTP zahtjeva poslati neke podatke poslužitelju.
Sa statičkim HTML stranicama, web stranica će uvijek biti ista, a mogućnosti joj se svode na prikazivanje teksta i slika, s mogućnošću povezivanja, preko linkova, s drugim stranicama.
Klijentske skripte se zajedno s HTML kodom (unutar HTML datoteka ili unutar zasebnih datoteka) nalaze na poslužitelju.
Kad stigne zahtjev, zajedno s HTML kodom se šalju klijentu, a na klijentu se izvršavaju kad budu pozvane (nakon što se stranica učita u preglednik, kad korisnik klikne na dugme i slično).
Klijentske skripte nude veliko proširenje mogućnosti web stranica, od kojih je možda najkorisnije prikazivanje prozora s porukama, trenutno prikazivanje i skrivanje određenih dijelova na stranici i drugi dinamični vizualni efekti (promjena slike pri prelasku mišem i slično).
Poslužiteljske skripte, kao i klijentske skripte, nalaze se na poslužitelju i, također, mogu biti ubačene u HTML kod, ili se mogu nalaziti u zasebnim datotekama.
Kad stigne zahtjev od klijenta, skripta se izvršava na poslužitelju, a kao rezultat izvršavanje dobiva se HTML kod koji se šalje klijentu.
Najveća prednost poslužiteljskih skripti je njihova mogućnost povezivanja s bazama podataka, što je omogućilo pojavu web stranica i web aplikacija s dinamičkim sadržajem koji se čita iz baze podataka i koji korisnici mogu mijenjati preko web aplikacije.
Skriptni jezik PHP nastao je 1994. kao osobni projekt jednog entuzijasta, a kasnije se u njegov razvoj uključio veliki broj programera koji su svi doprinijeli razvoju jezika PHP. Originalno je skraćenica PHP značila Personal Home Page Tools, a kasnije je značenje promijenjeno i danas znači PHP: Hypertext Preprocessor (PHP: hipertekstualni pretprocesor, što opisuje glavnu funkciju jezika PHP - da na temelju PHP naredbi generira HTML, jezik kojim se opisuje hipertekst.)
Najčešći način instalacije PHP-a je u sklopu tzv. LAMP platforme (Linux, Apache, MySQL i PHP).
Web poslužitelj Apache prima HTTP zahtjev, i ako tražena stranica ima nastavak .php (ili neki od drugih nastavaka koji su podešeni na poslužitelju), poziva izvršno okruženje PHP-a, koje prevodi i izvršava PHP naredbe.
Ukoliko skripta treba dohvatiti neke podatke iz baze podataka, bazi se postavljaju upiti iz PHP-a. (Napomena: radi poboljšanja performansi, MySQL može biti instaliran na zasebnom poslužitelju.)
Dobiveni podaci se prosljeđuju PHP-u, i PHP ih uklapa unutar HTML koda.
Taj HTML kod se unutar HTTP odgovora šalje natrag klijentu i podaci se prikazuju u korisnikovom web pregledniku.
Dugo godina veliki konkurent skriptnom jeziku PHP bio je ASP (Active Server Pages), Microsoftova poslužiteljska tehnologija čije su mogućnosti bile podjednake. No, ASP je zastario, a PHP se nastavio razvijati i dobivati bolju podršku za objektno-orijentirano programiranje. Postoji i nekoliko frameworka (razvojnih platformi) za PHP (Zend Framework, Symfony) čiji je cilj olakšati programiranje u njemu odvajanjem prezentacije (HTML) od logike (PHP kod), te uvođenjem objekata koji predstavljaju HTML elemente i proširuju funkcionalnost web stranica, zatim objekata za rad s bazama podataka i drugih.
Veliki konkurent je Microsoftov ASP.NET, donekle nasljednik tehnologije ASP, koji koristi .NET Framework za koji je moguće razvijati u više .NET jezika, od kojih su najrašireniji C# i Visual Basic.NET. Njegova prednost je veliki broj gotovih kontrola i objekata, i to što se njegove datoteke ne moraju prevoditi svaki put kod izvršavanja, već samo prvi put.
Jaka konkurencija je i JSP (JavaServer Pages). Za JSP danas postoji velik broj frameworka (Spring, Struts, JavaServer Faces...). Kao i ASP.NET, ne mora se prevoditi svaki put kod izvršavanja, i vrlo je raširen u svijetu poslovnih aplikacija.
Perl je skriptni jezik UNIX sustava, i to jedan od prvih s kojima je započeo razvoj web aplikacija. Ima velike mogućnosti, a njegov razvoj i dalje traje pa se i danas koristi za razvoj web aplikacija.
Python je skriptni jezik koji se može upotrebljavati i za web. Za njega postoji nekoliko frameworka i zajednica entuzijasta koji ga koriste.
Ruby je jezik sličan jeziku Python, a u posljednje vrijeme je vrlo popularan u kombinaciji s Rails frameworkom koji omogućava brz i jednostavan razvoj aplikacija.
Jedan od konkurenata skriptnom jeziku PHP je i ColdFusion, poslužiteljski skriptni jezik i tehnologija u vlasništvu Macromedie.