web programiranje php 1 - Висока ict школа...web programski jezici • jedna od podela...
TRANSCRIPT
Visoka škola strukovnih studija za
informacione i komunikacione tehnologije
Beograd
WEB PROGRAMIRANJE
PHP 1
Komunikacija klijenta i servera 1
dr Nenad Kojić
Podsećanje
Web sajt
• Web sajt kao i web aplikacija je programska struktura
koja se fizički nalazi na web serveru i koja je namenjena
prikazivaju u browser-u
• Lokacija web sajta je definisana jedinstvenom URL
adresom
• Komunikacija browser-a i web servera se po pravilu
realizuje http protokolom (tj. https)
Browser-server komunikacija
Browser
Internet
provajder
Web server
Internet
HTTP protokol
• HTTP-Hypertext Transfer Protocol je protokol namenjen
prenosu informacija na WWW (World Wide Web)
• Ovo je protokol između browser-a i servera, i predstavlja
request/response protocol
• Da bi se komunikacija realizovala bitno je da korisnici u
komunikaciji umeju da detektuju http request-ove tj. da
generišu http response-ove
URL adresa
• Ime servera predstavlja tekstualni ili brojni zapis po kome se server pronalazi
• Pomoću Domain name servers, ili DNS-a, dobija se jedinstvenaIP adresa, koja je zamena za ime servera, i olakšava pamćenje korisnicima
• DNS za www.google.com je 216.239.51.99, pa je puna adresaGoogle-a http://216.239.51.99/
• Ukucavanjem URL adrese u browser, dolazi do podeleadrese u tri dela:1.Tip protokol (http)2.Ime servera (www.pera.com)3.Putanja i ime fajla na serveru kome se pristupa
(dokumenti/prva.php)
WEB serveri
• Nakon pronalaženja servera browser formira konekciju ka definisanoj IP adresi na portu 80
• U skladu sa HTTP protokolom, browser šalje GET zahtev, i cookie opciono, tražeći konkretan fajl od servera npr.
http://www.pera.com/dokumenti/prva.html
• Server tada šalje teksualni fajl, html kod, promenljive sesije i cookie opciono, koji se u browser-u interpretira i grafički prikazuje korisniku
Web browser Web server
Komunikaciona mreža
Web browser Web server
Komunikaciona mreža
Web Serveri
• Najpopularniji Web server je Apache
- HTTP Server (Apache)
• Sledeći po popularnosti su: NGINX i Microsoft Internet Information Services (IIS) koji se koristi pod Windowsoperativnim sistemom
Tipovi sajtova
• Sajtovi se mogu podeliti na statičke i dinamičke, dok i
jedan i drugi mogu a ne moraju biti interaktivni.
• Statički web sajt podrazumeva fikasan sadržaj koji se
inicijalno kreira i prikazuje na način kako je kreiran.
Prikazuje se svima isto u svakom trenutku vremena.
• Dinamički web sajt podrazumeva kreiranje korisničkog
sadržaja u trenutku pristupa web strani. Ovaj sadržaj se
kreira na odnovu podataka iz baze podataka, i samim
tim je drugačiji ukolike se sadržaj u bazi podataka menja.
Dodato, isti sajt se može razlikovati za razlilite korisnike,
vreme pristupa i uloge korisnika. Npr. facebook.com
Tipovi sajtova
• Bez obzira da li je sajt statički ili dinamički, on se
dodatno može unaprediti interaktivnošču sa korisnikom,
kada kažemo da je sajt interaktivan.
• Ova interaktivnost se najčešće postiže primenom
JavaScript-a
Komunikacija
Web browser Web server
Komunikaciona mreža
Web browser Web server
Komunikaciona mrežaHTMLHTTP
Web browser
Web serverKomunikaciona mreža
PHP procesor
SQL server
Baza
podataka
Baza web stranica
i skriptova
Web browser
Web serverKomunikaciona mreža
PHP procesor
SQL server
Baza
podataka
Baza web stranica
i skriptova
HTML
PHPHTTP
Komunikacija browser-a i web servera kod statičkih sajtova se
realizuje nizom http request-response za svaki pojedinačni fajl
koji je potreban da bi se sajt prikazao.
Komunikacija se ralizuje HTTP-om i browser-u se isporučuju
originalni napisani HTML, CSS, JavaScript i drugi fajlovi koje je
programer postavio na server.
Web programski jezici
• Jedna od podela web programskih jezika je na klijentske i
serverske.
• Klijentski jezici su oni koji se fizički realizuju kod klijenta tj.
na klijentskom računaru. Zato se oni u originalnom obliku
isporuče sa servera, i kada dođu u browser onda ih browser
interpretira i prikazuje korisniku.
• Serverski jezici su oni koji se realizuju na serveru. Za
njihovu realizaciju je neophodan web server i oni se nikada
u originalu ne isporučuje browser-u, jer ih browser „ne
razume“. Klijent zato nikada ne vidi originalni serverski kod,
nego rezultat realizovanog serverkog koda, na samom
serveru, koji kao rezultat rada vraća klijentski kod korisniku.
Komunikacija
Web browser Web server
Komunikaciona mreža
Web browser Web server
Komunikaciona mrežaHTMLHTTP
Web browser
Web serverKomunikaciona mreža
PHP procesor
SQL server
Baza
podataka
Baza web stranica
i skriptova
Web browser
Web serverKomunikaciona mreža
PHP procesor
SQL server
Baza
podataka
Baza web stranica
i skriptova
HTML
PHPHTTP
Komunikacija browser-a i web servera kod dinamičkih sajtova
se realizuje nizom http request-response-ova.
Sada browser zahteva PHP stranicu, a kada web server to
detektuje, on se ne ponaša na isti način kao kada je tražena
HTML strana.
Server baze
podataka
Komunikacija
• Kada web server detektuje da se od njega zahteva php
stranica, on je ne isporučuje po default-u nego se aktivira
PHP procesor, koji je sastavni deo web servera
• Kada PHP procesor obradi PHP kod, svaka linija koda se
izvršava u skladu sa pravilima PHP-a, i kao rezultat obrade
se generišu klijentski jezici koji se šalju nazad browser-u
(HTML/CSS/JAVASCRIPT…), jer browser „ne razume“
PHP kod.
• Ukoliko se u PHP kod zahteva komunikacija sa bazom
podataka, onda se PHP procesor obraća serveru baze
podataka i konkretnoj bazi podataka na njemu. Po
obavljenoj komunikaciji, ako se tražio podatak iz baze, on
se integriše u rezultat rada procesora i isporučuje korisniku.
Baza podataka
• Server baze podataka i Baza podataka su nezavisni
server i celina za sebe. Ovim podacima ne mora da
pristupa samo jedan web server, nego može i više
različitih, a pored toga i drugi servisi, aplikacije, programi
i sl.
• Na jednom serveru baze podataka ima veliki broj baza
podataka, kao što jedan web server ima veliki broj
hostovanih web sajtova.
• PHP procesor se može obratiti serveru baze podataka
proizvoljno puno puta sa različitim zahtevima (upitima) i
na taj način menjati stanje podataka u bazi ili dobiti
podatke iz baze.
Do sada…
• Do sada su obrađeni klijentski jezici: HTML, CSS i
JavaScript, kao i JSON i XML
• Svi oni su bazni osnov za prikaz realizacije serverskih
jezika, koji će ih sada proširiti u mogućnostima primena,
optimizaciji koda i lakšem upravljanju kodom.
• Postoji veći broj serverkih jezika, koji imaju svoja pravila i
sintakse, ali je rezultat rada svakog od njih, ako je
namenjen prikazu u browser-u, manje više isti, jer se
realizuje klijentskim jezicima.
• Zato se u toku vežbi koristi XAMPP koji se na lokalnom
računaru može simulirati rad realnog web servera
PHP• PHP je jedan od serverskih jezika
• Ekstenzije stranica sa PHP kodom su *.php
• Ekstenzija je obavezna ako se u stranici nalazi bilo koji red
PHP koda, jer samo tako server može da prepozna da se radi
o kodu koji on treba da interpretira pomoću PHP procesora.
• U tom smislu, ako se nema web server, bilo koji PHP kod se
neće intepretirati nego će se samo prikazati u originalu u
browser-u.
PHP• PHP: Personal Home Page
• PHP: Hypertext Preprocessor
• Direktno se može upisuje u html kôd
• Prevodi se na serveru posebnim programom
• Prevodi se redosledom kojim je pisan
• Rezultat php kôda vraća se korisniku
• Server ne podržava php po default-u
• Prevodioci prevode kôd sa ekstenzijom htm, html, i php
• PHP-jezik je dosta sličan C, Javi i Perlu
• PHP syntax: C+Perl = PHP• Besplatan je i lakši od drugih script jezika
Napomena
• Često se dešava da u toku rada student napravi php stranicu, i
po navici klikne na nju da pogleda rezultat rada. Kako PHP nije
klijentski jezik, ovo nije moguće jer računar nije server i nema
softver koji ovaj kod može da obradi. Neophodno je stranicu
staviti u simulator servera, i tako je pokretati.
• Stavljanjem u simulator, u browser se mora kucati adresa tog
servera, pa putanja do stranice, npr.
127.0.0.1/pera_peric/index.php, a nikako struktura direktorijuma
na racunaru npr. C://sajtovi/pera_peric/index.php
• Ukoliko se neki php kod sačuna u HTML ekstenziji, sav kod će
se prikazati korisniku u browseru i neće se interpretirati od
strane servera.
Serverski / klijentski jezici
Browser - Server veza
PHP i server
• Nakon dobijanja zahteva za stranicom *.php server
dati kod ne šalje odmah klijentu nego ga prvo
obrađuje pa šalje
• Obrada podrazumeva:
– Parsiranje (Sintaksna provera)
– Izvršavanje (Logička provera i prevođenje svake linije koda
u HTML)
– Ako nije bilo greške ni na jednom od procesa obrade,
klijentu se vraća čist HTML kod sa podacima koji su dobijeni
u obradi
Istorijat razvoja PHP-a
• PHP se prvo razvio pod imenom PHP/FI. PHP/FI i razvijen je od strane
Rasmus Lerdorf-a 1995.
– “Personal Home Page/ Forms Interpreter” - Prvo ime stabilne verzije
• Version 3: 1997
“PHP: Hypertext Preprocessor” – razvijen od strane Andi Gutmans i Zeev
Suraski
• Version 4: 2000 - Zend, sa svim svojim karakteristikama
– Podrška za update
– Verzija 4.4.6 u Martu, 2007.
• Version 5: 2004 –Object Oriented & database connectivity
– Version 5.2.1 Stable
• Version 6: 2005/2014 – PHP 6 and Unicode– Nikad zaživeo prakično I realizovan u praktičnim primenama
• Version 7: 2015 – PHP next generation (phpng)
Gde se može koristiti ?
Pravljenje brojača posetilaca sajta
Obradu web formulara, slanje e-pošte, tekstualnih fajlova ili baze podataka
Omogućavanje posetiocima sajta da otpreme fajl na server
Pravljenje kalendara
Pravljenje „mejling” lista
Pravljenje tzv. Shopping korpi i onlajn aukcija
Pravljenje mašina za pretraživanje web sajta
Pravljenje igara
Postavljanje vesti
Pravljenje web servisa
Autorizovan pristup sajtu
Omogućavanje korisnicima da prave i uređuju web stranice preko Interneta
Sprovođenje anketa ili glasanja na webu
Razlozi i uloga PHP-a
• Koristi se za generisanje sadržaja web strane u toku
izvršavanja
• Open source
• Ima podršku za SQL i NoSQL baze podataka
• Radi i pod Windows-om i pod Unix-om
• Ne zavisi od tipa i verzije browser-a
• Besplatan je
• Brz i siguran
• Ne zahteva nikakvo predznanje sem html-a, dok ASP
traži C# ili VB.net a CGI Perl
Zašto PHP
• Open source
• Besplatan
• Podržava ga Apache (open source)
• Podržava ga Zend engine sa objektnim
programiranjem
• Laka konekcija na baze podataka
(MySQL, Postgre, Oracle)
• Biblioteka funkcija
• Portabilan
Popularni PHP softveri
• Blog/ CMS: WordPress, PHP blog, Drupal, CMSimple, Joomla, PHP website, PHP(Reactor)
• School System: Moodle
• Forum: Prado, phpBB, Vanilla, BBPress
Toliko za sada