Razvoj WEB aplikacija – II dio

U prethodnoj sesiji smo identifikovali osnovne pojmove koji su relevantni za web razvoj i postavili elemente okruženja unutar kojeg možemo da pristupimo realizaciji naše web aplikacije.

U nastavku ćemo se pozabaviti načinom na koji komuniciraju dijelovi programskog koda u našoj datoteci koju postavljamo na web server i kako se u praksi na realnom primjeru  realizuje client / server paradigma.

KOJE PROGRAMSKE JEZIKE TREBA DA KORISTIMO

U ovoj fazi razvoja ćemo koristiti 3 alata:

  • HTML (Hypertext Markup Language) je standardizovani jezik koji se koristi za struktuiranje tekstova, medijuma i ugrađenih objekata na web stranicama i u elektronskoj pošti. HTML posjeduje instrukcije koje se mogu koristiti za formiranje izgleda web stranice. HTML ćete najčešće koristiti da bi dizajnirali zaglavlja, paragrafe, tabele, forme za obuhvat podataka, slike za Vašu web stranicu
  • PHP (PHP: Hypertext Preprocessor)  je skriptni programski jezik koji ćete upotrebljavati da napišete programski kod koji će se izvršavati na serveru a koji vrši procesiranje korisničkih zahtjeva. Procesiranje zahtjeva realizuje na način što izvršava određene računske operacije, obavlja validaciju podataka, donosi odluke, čita i upisuje podatke u i iz baza podataka ili datoteka

PHP je server- side scripting language.

Skriptni jezik je programski jezik čiji se kod najčešće izvršava interpretiranjem. Skriptni jezici se koriste najčešće za pisanje manjih programa (skripti) koji se brzo pišu i služe za obavljanje manjih poslova. Skriptni jezici su postali popularni i u web programiranju, zbog svoje prenosivosti i jednostavnosti u realizaciji — u njima najčešće ne postoje napredne mogućnosti koje imaju drugi programski jezici, poput pokazivača, direktnog pristupa memoriji, sistemskih funkcija itd.

Da bi mogao da se izvrši, PHP program ne zahtjeva kompajler već kao većina drugih skriptnih jezika zahtjeva interpleter – server na kojem će se izvršavati. “Server-side” znači da se PHP programi izvršavaju na serveru a da se rezultati tj. izlazni podaci iz PHP programa šalju klijentu. U slučaju HTML-a i PHP-a, klijent je web browser.

  • JavaScript je takođe skript programski jezik koji ćete upotrebljavati da napišete programski kod koji će se izvršavati na klijentskoj radnoj stanici. Dakle, JavaScript je client side scripting language (kao npr VBScript ili JScript). Iako u svom imenu sugeriše da ima korjene u JAVA programskom jeziku, JavaScript sa JAVOM nema nikakvih dodirnih tačaka (JAVA je klasični programski jezik a ne script jezik). JavaScript je inicijalno razvio NetScape a sada je u vlasništvu Oracle-a.

HTML, PHP i JavaScript su besplatne tehnologije. Informacije o HTML-u možete pronaći na http://www.w3.org/MarkUp a o PHP-u na http://www.php.net.

Kada se dodje u fazu da treba napisati programski kod, sav programski kod (i za HTML, i za PHP i za JavaScript) se može realizovati koristeći obični tekst editor (recimo Notepad++). Treba imati u vidu da Notepad++ ne provjerava sintaksu onoga što pišemo. To znači da tek kada se to što smo ispisali kao programske direktive „pošalje“ serveru i kada na serveru pokrenemo i testiramo programski kod možemo konstatovati da li u programskom kodu ima grešaka ili ne. Naravno, ukoliko imamo kvalitetniji editor (sa više ugrađenih „čarobnjaka“) postajemo produktivniji u radu jer se kod ovakvih (složenijih) editora vrši u njima samima neka vrsta sintaksne i semantičke kontrole ispravnosti programskog koda.

SERVERSKI DIO PROCESA

Web stranice, u zavisnosti od toga da li se njihov sadržaj može mjenjati na osnovu akcija koje preduzme korisnik, se dijele na statičke i dinamičke.

Na početku svog razvoja, web sajtovi su bili statični. Imali su jednostavnu strukturu sa malim brojem web strana i skoro u potpunosti su bili realizovani u HTML-u. Svi korisnici koji pristupaju statičkim stranicama, web stranice vide na istovjetan način.

Kako je vrijeme prolazilo, sajtovi su postajali sve složeniji. Počeli su se javljati problemi kako u razvoju novih tako i u održavanju urađenih web site-ova. Alat HTML bez pomoći drugih tehnologija nije mogao da odgovori narastajućim zahtjevima korisnika interneta. Zbog toga se pojavio PHP koji se smatra (između ostalog) nadogradnjom HTML-a.

PHP je mnogo fleksibilniji od HTML-a. Web aplikacije pisane PHP-om daju “dinamičke” web stranice odnosno, omogućavaju da korisnici vide različite informacije na različite načine u zavisnosti od svojih želja i potreba.

PHP je dizajniran i usko specijalizovan za rad sa HTML-om i njega treba posmatrati kao nadgradnju HTML-a. Linije PHP koda mogu biti ugrađene u HTML kod i/ili PHP programi mogu na izlazu davati HTML kod.

U suštini PHP funkcioniše tako što korisnik preko web browser-a zada neki upit, server primi upit, prosljedi ga PHP-u koji ga obradi i onda vraća nazad informacije klijentu odnosno web bowseru.

Za komunikaciju izmedju klijenta i servera se koristi standardizovani HTTP protokol (Hypertext Transfer Protocol). Uzmimo tipičnog HTTP klijenta, Vaš Web browser. Kada posjetite koristeći Web Browser neku web stranicu, recimo (radićemo na našem lokalnom web serveru) http://localhost/test.php, Vaš browser šalje HTTP zahtjev web serveru  (u našem primjeru je taj web server localhost). Najjednostavniji oblik tog zahtjeva je :

GET / HTTP/1.1

Host: localhost

Web server je sposoban da odgovori na ovaj zahtjev šaljući klijentu resurs (web stranicu) koja se traži. Primjer odgovora na postavljeni zahtjev bi mogao biti:

Capture

Kao što možete primjetiti, glavninu odgovora čini sadržaj stranice, odnosno HTML kod. U ovaj kod je izmedju tagova <?php   i ?> umetnut kod koji interpletira PHP procesor. Unutar ovih tagova se mora nalaziti specifikacija komandi po sintaksi koja važi za PHP (u tom smislu, komanda echo iz prethodnog scripta je PHP komanda a ne HTML komanda a znak ; na kraju ove komande je na tom mjestu jer to zahtjeva PHP).

Prethodni programski kod se nalazi na web serveru. Poslije obrade od strane web servera, on dobija formu koja je prihvatljiva web browser-u kod klijenta. Taj oblik je sljedeći:

Capture

Kao što se može primjetiti na serveru su se izvršile sve promjene koje su diktirane PHP jezikom i u datoteci je ostao samo HTML kod

Kada Vaš browser dobije odgovor, on počinje da iscrtava sadržaj web strane (pogledajte Sliku 1).

UntitledSlika1: Browser iscrtava web stranicu

Kada se sadržaj nacrta u web browser-u, možete čak i isključiti Vaš računar sa interneta a da to ne prouzrokuje nikakve probleme sve dok Vaš browser ne dodje u situaciju da mora da pošalje novi HTTP zahtjev serveru.

Gdje se u ovakvom procesu pojavljuje PHP?

PHP rolu je najlakše shvatiti kao pomoć web serveru dok on vrši generisanje HTTP odgovora.To znači da je funkcija PHP-a već okončana kada se vrši slanje odgovora od strane web servera web browseru. Rezultat rada PHP-a je uključen u konačan rezultat koji se šalje klijentu. Obzirom da aktivnost PHP-a okupira Serverske resurse, PHP je primjer tehnologije koja je razvijena za server.

Pogledajmo još jedan primjer

Untitled 88

Slika 2: Sadržaj iste web stranice prije i poslije zahtjeva korisnika

Na slici 2 su prikazane 2 web stranice. Prva web stranica se generiše iz čistog HTML koda koji je lociran u datoteci koja ima kao nastavak svog imena ekstenziju .html na web serveru. HTML kod u ovoj datoteci je realizovan na način da prikaže web stranicu koja sadrži zaglavlje, formu sa 2 labele i 2 polja za unos podataka i dva „dugmeta“. Kada korisnik unese podatke i pritisne taster  „Get your wage report now“, browser šalje korisnikove podatke (10.75 i 25 u ovom slučaju) serveru sa zahtjevom da ga procesira. Browser vrlo često prosljedjuje i ime programskog modula (ime PHP modula) koji treba da obradi podatke. Posao realizacije dobija datoteka na web serveru koja sadrži PHP kod. Programski kod u PHP datoteci obezbjeđuje instrukcije za:

  • prijem podataka iz web forme (u primjeru – iz prve web forme);
  • izračunavanje koja se traže zahtjevom;
  • generisanje nove HTML strane za prikaz rezultata.

Druga web stranica prikazana na prethodnoj slici se kreira PHP kodom a web server ju vraća browseru kako bi ju ovaj prikazao korisniku.

Da rezimiramo

Na sljedećem dijagramu smo vizuelno prikazali put kojim prodje jedan zahtjev generisan od strane korisnika:

UntitledSlika 3: Interakcija između web browsera i serverskih komponenti

Korisnik preko svog web browser-a šalje zahtjev za prikazom neke stranice.

Web Server (u našem slučaju Apache) traži php stranicu koja se nalazi u fajl sistemu na server računaru. Kada je nađe prosleđuje je PHP-u ili tačnije PHP parser-u. Sa desne strane bloka “Procesiraj PHP” nalazi se blok “Baza podataka”. U našem primeru nismo koristi bazu podataka ali treba naglasiti da moć PHP-a upravo leži u povezivanju internet tehnologija i baza podataka. Za sada treba reći samo još to da je ovaj blok baze podataka najčešće MySQL baza podataka.

Po izvršavanju PHP koda generiše se HTML kod koji se vraća  nazad web browser-u.

KLIJENTSKI DIO PROCESA

Na drugoj strani, bilo kakvo procesiranje podataka kod klijenta poslije prijema podataka od strane  browsera spada u tehnologiju clienta. JavaScript je široko rasprostranjena opcija „skripting jezika za klijentsko okruženje“. JavaScript programski kod ima drugačije karakteristike od ostalog djela programskog koda ali i od PHP-a kao scripting jezika na server strani. Ono što se vidi kao programski kod web stranice je sadržaj HTTP zahtjeva. Ovaj sadržaj je generisan na serveru a to znači da je eventualno PHP korišten za formiranje HTML koda. Korišćenjem PHP-a je moguće izgenerisati i JavaScript kod. Ipak, mnogo češća varijanta je da developeri unutar posebnih HTML tagova (na početku ili na kraju HTML dokumenta ili u posebnom JS dokumentu) ispišu JavaScript programski kod kojeg je u stanju da interpletira klijentski web browser i koji se izvršava na klijentu kada se ispune odredjeni uslovi definisani HTML kodom (najčešće kada nastupi neki dogadjaj – kada korisnik preduzme neku akciju)

Komunikacija JavaScript-a sa PHP-om je mnogo kompleksnija obzirom da ona zahtjeva da se pošalje jedan dodatni HTTP zahtjev serveru kao zahtjev clienta – JavaScript-a prema serverskoj komponenti – PHP-u. U svakom slučaju, dokle god ovaj zahtjev ili neka druga akcija korisnika na dodje se web browsera, zadatak PHP-a je realizovan i web server mirno očekuje novi zahtjev. Dok se  JavaScript izvršava nema potrebe da postoji čak ni konekcija izmedju klijenta (web browsera) i servera.

Malo detaljnije o tome kako JavaScript, PHP i HTML izmedju sebe razmjenjuju podatke biće objašnjeno u sljedećem nastavku

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s