You are on page 1of 37

Tehnologije za Web

Kaskadni stilovi (CSS)

HTML je izvorno projektovan kao strukturni jezik nije napravljen


da upravlja izgledom stranice, ve se pretpostavljalo:

Autor zadaje elemente stranice


ita Weba odreuje kako e oni na ekranu izgledati

Sa podrkom za fontove, boje i druge vizuelne efekte, HTML je


postao alatka za dizajniranje Web strana

Kaskadni stilovi uvedeni su s namerom da se jeziku HTML vrati


prvobitna namena strukturiranje Web strana

Pomou kaskadnih stilova odvaja se struktura od izgleda Web


strane

CSS

Kaskadni opisi stilova (CSS) predstavljaju skup odrednica (pravila)


pomou kojih se u potpunosti upravlja rasporedom i izgledom stranice

Opisi stilova omoguavaju pisanje naredbi za izgled i formatiranje u


zaglavlju Web stranice ili u spoljanjoj datoteci, van HTML koda
kojim se zadaje sadraj stranice

Nasuprot upotrebi tabela za rasporeivanje elemenata stranice, CSS


pravila su jednostavni tekstualni iskazi, pomou kojih istovremeno
moe da se rasporeuje i formatira jedan ili vie elemenata

Stranica na kojoj su razdvojeni sadraj i izgled lake se odrava i


aurira

Specifikacije kaskadnih stilova

Specifikacija kaskadnih stilova je veoma obimna i njoj se


neprekidno dodaju nova svojstva

Verzija Prikaz svojstava

CSS1

Upravljanje tekstom, ukljuujui mogunost zadavanja fontova, veliine


slova, stila i razmaka. Mogunost zadavanja boje pozadine i pozadinske
slike. Podeavanje margina, ivica i razmaka izmeu teksta i objekata.
Podrka za stilove za liste.

CSS2

Poboljana svojstva vezana za tampanje. Podrka za dinamiko


iscrtavanje, utisnute fontove, pozicioniranje elemenata (CSSP), kaskadne
stilove sa XML-om. Podrka kontroli okruenja mogunost izmene
oblika pokazivaa mia. Ogranieni postupci, na primer efekat lebdenja kod
hiperveza.

CSS3

Donosi podrku za vertikalno ispisan tekst i dizajn u vie kolona.


Poboljana je podrka za pridruivanje postupaka i stilova. Integrisana je
tehnologija grafike, boje i fontova.
4

Metode izrade HTML dokumenata i


kaskadnih stilova
Metod

Primer

Prednosti

Mane

Runo

Pisanje koda u
Notepadu

Autor ima veliku kontrolu nad


kodom. Mogue je odmah
pristupiti grekama, novim
HTML elementima i CSS
svojstvima.

Metod je spor. Podloan je


grekama. Zahteva odlino
poznavanje HTML elemenata i
svojstava CSS. Nema mogunost
direktne vizuelne kontrole.

Prevoenje

Snimanje HTML
Brz. Pojednostavljuje
dokumenta iz
objavljivanje postojeih
drugog programa, dokumenata.
npr. Worda

Kod nastao na ovaj nain obino


sadri dosta greaka. Zahteva
dodatno proiavanje, dodavanje
hiperveza.

Pisanje koda Program HomeSite Velika kontrola nad kodom. Bri Spor. Zahteva dobro poznavanje
u specijalnom
od runog pisanja koda. Prua
jezika HTML i CSS.
programu za
pomo, upozorava na greke i
obradu koda
pomae u pisanju struktuiranog
HTML koda i CSS.
Izrada strana Program
u WYSIWYG FrontPage
programima

Autor radi direktno sa grafikim


i tekstualnim objektima. Ne
zahteva dobro poznavanje jezika
HTML i CSS:

esto daje lo HTML kod i CSS.


Fino podeavanje izgleda strane
najee zahteva runo ureivanje
HTML koda.
5
*WYSIWYG - What You See Is What You Get ta elite, to ete i videti

Programi za izradu Web strana


Program

Platforma Korisna adresa

Opis

Dreamweaver Windows, http://www.adobe.com/ Dobar alat za vizuelnu izradu Web strana sa


Macintosh products/dreamweaver/ usklaenim WYSIWYG* i mogunostima
ureivanja koda. Prua jaku podrku CSS i
specifikaciji DHTML.
HomeSite

Windows http://www.allaire.com/ Ima neverovatne mogunost iza upravljanje


homesite
kodom, lou podrku za vizuelno ureivanje.
Sestrinski proizvod ColdFusion Studio prua
bolju podrku za tehnologije dinamike izrade
Web lokacije.

GoLive

Macintosh http://www.adobe.com/ Veoma popularan meu korisnicima raunara


Windows products/golive
Macintosh. Ima grafiki interejs potpuno
prilagoen dizajneru. Generisani kod sadri
greke, nije popularan meu autorima koji tee
strogom potovanju standarda.

FrontPage

Windows http://www.microsoft.
com/frontpage

Popularan meu autorima malih lokacija i


dizajnerima kompanijskih prezentacija. Znatno
je poboljan od prve verzije, ali jo ima
reputaciju programa koji daje loe ili
6
Microsoftske strane.

Programiranje i izrada Web strana

Programiranje za Web moe se podeliti u dve osnovne velike


grupe: klijentsko i serversko
Klijentske tehnologije su one koje se izvravaju u klijentu, tj. u
itau, iako postoje i neke klijentske tehnologije, poput
JavaScripta i ActiveX kontrola, koje se izvravaju na
klijentskom raunaru, ali izvan itaa
Programi koji se izvravaju na serveru su serverske aplikacije

Svakoj tehnologiji pripada odreeno mesto i primena, njihovo


kombinovanje je najbolje reenje

Tehnologije za klijentsko i serversko


programiranje Web strana
Klijentske tehnologije

Serverske tehnologije

ActiveX kontrole

CGI skriptovi i programi

Java programi

Serverski API programi


(ISAPI/NSAPI)

Jezici za pisanje skriptova


Java Script
VBScript
Dynamic HTML

Serverski skriptovi
Active Server Pages
ColdFusion
PHP

Pomoni programi

Serverski Java programi

Dodaci

Klijentsko
programiranje

Klijentsko programiranje

Programi koji se izvravaju na klijentskoj strani mnogo su bri


od programa na serverskoj strani

Nije potrebno prenositi podatke preko mree da bi se prikazao


rezultat akcije

Klijentsko programiranje nedostatak kontrole

Teko je odrediti kakvi e korisnici pristupati lokaciji


Koji e ita korisnici koristiti
Koja e svojstva itaa biti ukljuena
Koju vrstu procesora korisnik upotrebljava
Postoje korisnici koji iskljuuju podrku za skriptove ili koriste
programe koji se tek testiraju

10

Klijentsko programiranje

Klijentsko programiranje nije uvek efikasno


Pretpostaviti: da e sve ispravno raditi, ali napraviti i rezervnu varijantu

11

Active X

ActiveX je Microsoft-ova tehnologija za izradu malih komponenti


(kontrola) u okviru Web strane nije programski jezik, ve mnotvo
integrisanih objekata napisanih na razliitim jezicima u
Windowsovom okruenju.

ActiveX kontrole mogu biti programirane u vie razliitih


programskih jezika, ukljuujui Javu, Delphi, Visual Basic, C++ i
druge.

ActiveX objekti (kontrole) omoguavaju dodavanje programa Web


stranici za reavanje mnotva zadataka: od prikazivanja poruka do
generisanja zvunih izlaza za tekst ili npr. mogunosti prepoznavanja
govora u programima i Web stranicama.

12

ActiveX

ActiveX kontrole mogu biti izvravane samo na Windows


operativnim sistemima.

ActiveX objekti nisu bezbedni, jer moraju da se nalaze na


korisnikovom disku da bi ga bilo mogue koristiti - imaju pristup
svim resursima sistema

Zlonamerni ActiveX objekat moe uneti virus i otetiti ili unititi


podatke na disku korisnika

13

ActiveX

Ako korisnik poseti Web stranicu koja koristi ActiveX


objekat, a nema instaliran objekat na svom disku, Web server
e pokuati da ga poalje na korisnikov raunar

Zavisno od korisnikovih bezbednosnih podeavanja, ita Weba


e prikazati okvir za dijalog, koji upozorava korisnika o
preuzimanuju ActiveX objekta

Preporuka: koristiti samo svoje objekte, one koje su napravili


poznati i pouzdani programeri i one koji su preuzeti sa
pouzdanih Web lokacija (kao to je Microsoft)

14

Java

Tehnologija kompanije Sun Microsystems

Java je razvojni jezik nezavisan od platforme, koji


omoguava pisanje programa i njegovu primenu na bilo kom
sistemu, itau ili OS koji podrava Java Virtualnu Mainu
(JVM)

Java jezik je po sintaksi donekle slian jeziku C++

15

Java apleti

Web strane koriste male programe pisane na jeziku Java, koji


se nazivaju apleti i koji se preuzimaju i izvravaju u samom
itau proirujui njegove mogunosti

Apleti se piu na jeziku Java,


prevode u bajt kod, koji je nezavisan od raunara na kojem se
izvrava,
u obliku datoteke tipa .class koja se automatski preuzima u ita
koji podrava Javu i
pokree u okruenju samog itaa

16

ita preuzima Java aplete sa


Web servera
HTML kod Web
stranice, slike, Java
apleti

Zahtev itaa za
Web stranicom

ita

HTML, slike,
Java apleti

server

17

Java apleti
Java apleti koriste generiki bajt-kod koji ita prevodi u kod specifian
za mainu isti aplet radi na raznim tipovima maina

Bajt-kod apleta
Windows radna stanica

Bajt-kod apleta

Java aplet

Linux radna stanica

Bajt-kod apleta
Mac radna stanica

18

Java apleti

ak i na raunarima sa brzim procesorom moe izgledati kao


da se bajt kod izvrava sporije nego u normalno prevedenim
programima

JVM pre izvravanja mora da interpretira bajt kod apleta

Zbog toga vlada miljenje da je Java spora

Zapravo njena interpretacija moe biti spora

19

Problemi s Javinim generikim


bajt-kodom

Problem s Javinim generikim bajt-kodom je to ita mora


da prevede programski kod u program specifi an za procesor
svaki put kada se aplikacija pokrene

Dodatni proces prevoenja izaziva kanjenje pre pokretanja


programa

Svaki put kada korisnik pokrene aplet ita mora da ga


preuzme, dok je ActiveX objekat ita morao da preuzme
samo jednom

20

10

Bezbednost Java apleta

Java apleti nisu samostalni izvrni programi oni se pokreu samo


u okviru Web itaa

Javin bezbednosni model titi korisnike od virusa i drugih


opasnosti iz programa preuzetih s Weba

Radi eliminisanja virusa i krae podataka Java apleti:

ne mogu da pristupe resursima (posebno datotekama) koji se nalaze na


korisnikovom disku,
ne mogu da pristupe svojstvima sistema,
ne uitavaju datoteke,
niti otvaraju mrenu vezu sa bilo kojim raunarom osim onog s kojeg
su preuzeti.

21

Java apleti tite rad diska i datoteka


Disk

Java aplet
Datoteke

22

11

JavaScript

JavaScript je skript jezik kojim Web dizajneri mogu da


automatizuju postupke unutar Web stranice

Skript jezik- jer omoguava pisanje skripta (niza naredbi) koje e


Web ita izvriti

Omoguava zadavanje grupe naredbi koje e ita Weba izvriti


ali se ne koristi za pravljenje spoljnog programa koji se izvrava
nezavisno od itaa

23

JavaScript

JavaScript se ugrauje u HTML Web stranice nije potreban


poseban alat; moe se koristiti isti program za ureenje teksta koji
se koristi za izradu Web stranice

Najpopularniji itai Weba imaju ugraenu podrku za JavaScript


posetioci lokacije ne moraju instalirati dodatne programe na svoje
raunare

JavaScript iskazi postavljaju se izmeu oznaka <script> i


</script>, koje e ukazati itau Weba da izvri JavaScript
iskaze umesto da prikae tekst na ekranu

24

12

JavaScript

Iskazi skripta mogu se uokviriti HTML oznakama za


komentar (<!--..-->) kako bi se spreilo da itai koji ne
podravaju JavaScript na ekranu prikau iskaze skripta

itai koji ne podravaju JavaScript ignorisae oznake


skripta i sve to se nalazi izmeu poetne i zavrne oznake
komentara

Obrnuto, itai koji podravaju JavaScript ignorisae oznake


komentara i izvriti funkciju skripta

25

Sakrivanje skripta od itaa koji ne


podravaju JavaScript
<script language=JavaScript>
<!-Document.bgColor=lightyellow;
Document.fgColor=magenta;
//-->
</script>

26

13

Pomoni programi

Program koji e ita pozvati u pomo kada naie na tip


podataka koji ne moe da obradi

Pod pretpostavkom da se programu mo e pridruiti MIME


tip, svaki program moe biti pomoni program

Kada se objekat postavi na Web dodeljuje mu se HTTP


zaglavlje sa informacijama o tipu te informacije date su u
MIME tipu

MIME type se odreuje na osnovu ekstenzije fajla (na primer


.html, ili .gif). Standardni skup MIME type je definisan u
fajlu /usr/local/etc/httpd/conf/mime.types
27

Pomoni programi

Na primer. Svaki dokument nainjen u programu Acrobat


trebalo bi da ima pridruen MIME tip application/pdf.

Kada ita primi datoteku sa odreenim MIME tipom,


postupie u skladu sa tim kako je podeen:
Snimanje datoteke na disk
Brisanje datoteke
Prosleivanje datoteke drugom programu

Pomou MIME tipova i pomonog programa autor Web


lokacije moe da postavi Wordov dokument koji e korisnici
moi automatski da preuzmu i pregledaju, ako na ra unaru
imaju instaliran Word
28

14

Dodatni programi za itae

Dodaci su uvedeni da bi se reio problem komunikacije i


integracije koji je postojao kod pomonih programa koji
nisu integrisani u ita Weba ve se izvravaju u zasebnim
prozorima i vrlo loe komuniciraju sa itaem

Dodaci su komponente koje se izvravaju u okviru itaa, pa


se zato mogu lako ugraditi u Web stranu

Lako komuniciraju sa itaem putem tehnologije kakva je


JavaScript

29

Dodatni programi za itae

Proirivanje itaa pomou dodataka ima i mane korisnici


moraju pronai i preuzeti dodatak. Instalirati ih i ponovo
pokrenuti ita.

Za mnoge korisnike komplikovano.

Da bi se olakao postupak instaliranja neki popularni dodaci


poput dodatka za format Flash kompanije, postali su sastavni
deo instalacije samog itaa.

Standardni dodaci reprodukovanju multimedijskih sadraja

Primeri: Adobe Flash, Shockwave, Adobe Acrobat,


RealVideo..
30

15

31

Dinamiko generisanje
HTML-a

16

Dinamiko generisanje HTML-a


HTTP protokol

Web itai su namenjeni za prikazivanje Web stranica koje


im isporuuju odgovarajui Web serveri.

Struktura i izgled samih stranica se opisuje jezikom HTML.

Komunikacija izmeu Web klijenta (tj. itaa) i Web servera


odvija se po standardnom HTTP (HyperText Transfer
Protocol) protokolu.

33

Slanje zahteva HTTP klijenta


HTTP klijent

GET/docs.html HTTP/1.0
User-Agent: Internet Explorer 6.0 (Windows XP)
Accept-cookies: yes
Host:vps.ns.ac.rs
...

HTTP server

Prvi red poruke je najva


najvaniji - on sadri:
komandu koju klijent upuuje serveru (u ovom sluaju to je GET komanda kojom se zahteva

odreena datoteka sa Web servera),


putanju datoteke u okviru Web sajta servera (/docs.html) i
oznaku verzije protokola (HTTP/1.0).

Naredni redovi u poruci - dodatne informacije koje server moe da iskoristi za svoje
potrebe. U ovom primeru:
polje User-Agent predstavlja opis klijentskog softvera (tip i verzija Web itaa i operativnog

sistema),
polje Host predstavlja simboliku adresu klijenta, itd.

34

17

Slanje odgovora HTTP klijentu

Zadatak servera je da po prijemu zahteva HTTP klijenta


odgovori na njega.

U ovom sluaju odgovor servera treba da sadri traenu


datoteku (docs.html), pri emu je format odgovora takoe
definisan HTTP protokolom.

35

Slanje odgovora HTTP klijentu


HTTP klijent

HTTP/1.0 200 OK
Content-Type:text/html

HTTP server

<HTML>
<HEAD>
...

Prvi red odgovora sadri:


oznaku protokola, trocifreni broj koji predstavlja status izvrene operacije

(200) i tekstualni opis tog statusa (OK). - Konstanta 200 oznaava da je


zahtev uspeno izvren i da se traena datoteka nalazi u nastavku poruke.
Druge konstante koje se ee sreu su:
404 (traena datoteka nije pronaena),
407 (pristup datoteci nije dozvoljen), i
302 (datoteka premetena na drugo mesto).

36

18

Slanje odgovora HTTP klijentu


HTTP klijent

HTTP/1.0 200 OK
Content-Type:text/html

HTTP server

<html>
<head>
...

Naredni redovi u poruci sadre:


Content-Type - oznaka tipa sadraja koji se vraa (standardizovane oznake

propisane u odgovarajuim RFC dokumentima (Request For Comments) - zvanina


serija dokumenata koja opisuje tehnike i organizacione detalje Interneta poevi od
1969
Na primer:

HTML datoteke imaju oznaku text/html,


datoteke sa ASCII tekstom bez formatiranja imaju oznaku text/plain,
GIF slike image/gif, JPEG slike image/jpeg, itd.

Jedan prazan red koji razdvaja zaglavlje odgovora od samog sadraja datoteke.
37

Statiki i dinamiki Web sadraji

Jedino to klijent moe da zatrai od servera je datoteka.

Na serveru je da tu datoteku pronae (eventualno i modifikuje!) i


poalje klijentu.

Web sadraji koji se smetaju na server vidljivi su klijentima kao


pojedine datoteke:

datoteke mogu biti unapred pripremljene (npr. u editoru kakav je


Macromedia Dreamweaver) i smetene u fajl-sistem Web servera.
Mogu biti i generisane u letu po prijemu zahteva klijenta na neki
poseban nain;

U tom smislu, Web sadraje (zapravo, datoteke) moemo podeliti


na statike i dinamike.

Klijent ne zna da li je datoteka koju je traio generisana statiki ili


dinamiki.
38

19

Statiki Web sadraji

Statiki Web sadraji su datoteke koje su unapred smetene u


odgovarajui direktorijum fajl-sistema Web servera i spremne su za
isporuku klijentima po njihovom zahtevu.

1) Klijent zahteva fajl


HTTP klijent

2) Server uitava fajl iz fajlsistema i alje ga klijentu

HTTP server

- Isporuka statikih sadraja -

39

Dinamiki Web sadraji

Dinamiki sadraji nisu uskladiteni unapred ve se generiu za


svaki zahtev klijenta posebno.

U ovom sluaju server nee traiti datoteku u okviru fajl-sistema;


server zna da je u pitanju dinamiki generisana datoteka i poziva
odgovarajui potprogram koji e je generisati.

Najee nema potrebe ovako generisanu datoteku uvati na


serveru
1) Klijent zahteva fajl
HTTP klijent

2) server generie fajl i alje ga klijentu; ne


snima ga u svoj fajl-sistem

HTTP server

- Isporuka dinamikih sadraja 40

20

HTTP komunikacija
Ukupna sekvenca aktivnosti klijenta i servera u HTTP komunikaciji

1.
2.
3.
4.

klijent otvara konekciju sa serverom


klijent alje zahtev serveru
server vraa odgovor
zatvara se konekcija

41

HTTP komunikacija

Komunikacija izmeu klijenta i servera zasnovana na


zahtev/odgovor principu.

Svaki par zahtev/odgovor smatra se nezavisnim od ostalih.

Recimo, u sluaju da prvi klijent poalje zahtev serveru i dobije


odgovor, zatim drugi klijent poalje zahtev i dobije odgovor, pa
potom ponovo prvi klijent poalje novi zahtev, nema naina da se
ustanovi da je prvi klijent poslao dva zahteva (prvi i trei).

Server svaki zahtev opsluuje nezavisno od ostalih zahteva.


HTTP je stateless protokol: ne omoguava praenje stanja
korisnike sesije izmeu slanja vie razliitih zahteva.
42

21

Praenje sesije korisnika

HTTP protokol ne omoguava praenje sesije korisnika.

Kako bi se ovaj cilj ipak postigao definisano je pomono reenje mehanizam slanja kolaia (cookies) izmeu klijenta i servera

Uveo ga je Netscape Navigator, a kasnije je postao standardan


mehanizam za ovu namenu podran od svih Web itaa i servera.

ta je jedan cookie zapravo?

Moemo ga shvatiti kao string od tipino 20-30 nerazumljivih


znakova koji je namenjen za jednoznano identifikovanje korisnika
na serveru.

43

Praenje sesije korisnika

Prilikom slanja prvog zahteva server e ustanoviti da mu klijent


nije poslao cookie kao jednu stavku u zaglavlju zahteva.

U odgovor na taj zahtev server e dodati cookie.

Ukoliko je Web ita podeen tako da radi sa cookie-ima, on e u


svim sledeim zahtevima koje bude slao tom serveru ukljuiti i
cookie, tako da e server moi da prepozna klijenta koga je ve
ranije opsluivao.

44

22

Praenje sesije korisnika

1) zahtev
HTTP klijent

2) odgovor+cookie

HTTP server

a) slanje prvog zahteva i prijem odgovora koji ukljuuje cookie

1) zahtev + cookie
HTTP klijent

2) odgovor+cookie

HTTP server

b) svi sledei zahtevi sadre cookie

45

Svrha kolaia

Glavna svrha kolaia jeste da sauva informacije:


Oni se uglavnom koriste za uvanje korisnikog imena i lozinke
korisnik ne mora da ih unosi svaki put kada pristupi lokaciji
Mogu se koristiti za uvanje svih podeavanja koja je korisnik
zadao kada je poslednji put pristupao lokaciji

Sa programerske take gledita:

Kolaii se koriste da ree probleme vezane za upravljanje


stanjem problem stanja je povezan sa injenicom da se
izmeu dve posete lokaciji server ne sea korisnika

46

23

Upotreba kolaia

Nekim korisnicima se ne dopada kada neko prati njihovo ponaanje


na Webu, pa e oni iskljuiti kolaie

Da bi se to izbeglo i steklo poverenje korisnika, autori Web


lokacije bi trebalo da saine:

poseban dokument o privatnosti ili


izjavu o upotrebi i tako obaveste korisnika za ta e kolaii biti
upotrebljeni
samo jedan kolai koji e istovremeno i da prati korisnika i da uva
informacije o podeavanjima koja je on zadao vie kolaia zahteva
od korisnika niz potvrda, jer svaki mora biti prihvaen
alternativno reenje za korisnike koji ne ele da prihvate kolaie

47

Serversko
programiranje

24

Serversko programiranje

Serversko programiranje ima mnogo oblika, ukljuujui CGI


skriptove, serverske API program poput NSAPI (Netscape Server
Application Programming Interface) i ISAPI (Internet
Server Application Programming Interface) i Java programa,
serverska okruenja za skriptove, kakva su ASP kompanije
Microsoft i ColdFusion kompanije Allaire

Svaka tehnologija ima svoje prednosti i mane zajedniko


svojstvo: kontrola

Server je jedini deo klijent-server arhitekture nad kojim autor


lokacije ima kontrolu

49

Serversko programiranje

Serversko programiranje ne primeuje razlike koje mogu da


postoje na klijentskoj strani,

Lokacija ija je interaktivnost bazirana na serveru, teoretski moe


da isporui sadraj bilo kom itau

Razvoj interaktivnih elemenata, uprkos prednostima klijentske


tehnologije, za veliki broj lokacija sa velikim protokom podataka
oslanja se uglavnom na serverske tehnologije

Glavna mana serverske tehnologije je: brzina

Zbog kompletne interakcije koja se odvija na serveru moe doi do


kanjenja zbog:
Optereenosti servera ili
Zaguenosti mree za prenos podataka
50

25

CGI programi

Najstarija tehnologija za serversko programiranje: Common


Gateway Interface (CGI) programi

CGI omoguava Web serverima da pokreu programe kao odgovor


na HTTP zahteve

CGI specificira kako proslediti argumente programu koji e se


izvriti kao deo HTTP zahteva

CGI omoguava da se vrati rezultat u HTML (ili nekom drugom)


formatu, i to u zavisnosti od parametara konkretnog zahteva

51

CGI programi
HTTP zahtev

Svaki HTTP zahtev, od strane korisnika, generie novi proces na


serveru

52

26

CGI programi

CGI programi mogu da se piu na svim jezicima koji mogu da se


koriste na serveru koji izvrava program

Najee se CGI programi piu na jeziku Perl, zbog njegove


izuzetne mogunosti za rad sa znakovnim nizovima i podrke za
Web

CGI programi mogu se pisati u bilo kom od sledeih jezika:

C/C++, Java, Visual Basic, pa ak i Pascal, Cobol ili Fortran

CGI
CGIprograme
programetreba
trebapisati
pisatina
najeziku
jezikukoji
kojijejebrz,
brz,prenosiv
prenosivi ikoji
koji
odgovara
serveru
to
e
ga
izvravati
i
programeru
koji
odgovara serveru to e ga izvravati i programeru kojie
ega
gapisati
pisatii i
odravati.
odravati.

53

CGI programi

CGI program mora da kreira posebni proces za svaki zahtev


posetioca, koji nestaje tek kada se u potpunosti zavri transfer
podataka

Kreiranje nove instance programa zahteva dodatno vreme, OS treba


da uita program, alocira memorijski prostor, a nakon izvrenja da
dealocira i ukloni program iz memorije

Performanse znaajne server opsluuje veliki broj istovremenih


zahteva

U serverskim programima veoma je vaan bezbednosni aspekt


CGI
CGIprogrami
programise
selake
lakemogu
mogunadgledati
nadgledatii iodravati
odravatiukoliko
ukolikose
se
postave
postaveuujedan
jedandirektorijum
direktorijum
54

27

Serverski API

Serverski API programi koriste se za vane funkcije koje treba brzo


da se izvravaju

Omoguavaju dobru integraciju sa Web serverom

Lako pristupaju glavnim serverskim funkcijama kao to su:

Provera identiteta, kontrola pristupa i brz pristup bazi podataka ili


pozadinskim uslugama

Glavna mana serverskih API programa jeste njihova sloenost i


visoka cena

Loe napisan API mogao bi da blokira ceo Web server, dok lo


CGI program moe samo da zauzme previe procesorskog vremena

55

Java Servleti

Servleti - jedna od tehnologija za generisanje dinamikih Web


sadraja.

Da bi se servleti mogli koristiti, Web server mora da ima


odgovarajuu podrku za servlete. Pisanje servleta je mogue samo
u programskom jeziku Java, tako da je za njihovo izvravanje
potrebna i JVM (koju najee obezbeuje Web server).

Servlet je - Java klasa koja nasleuje standardnu klasu HttpServlet.

Klase i interfejsi koji se koriste u pisanju servleta nalaze se u


paketima

javax.servlet i
javax.servlet.http.

56

28

ivotni ciklus servleta


Prvi zahtev

1.
POSETILAC

sevlet
kod

2.
POSETILAC

...

1
SERVER

kreira novi
proces

Servlet prihvata i obrauje


zahteve posetilaca

sevlet
sevlet
kod
kod

N-ti
POSETILAC

SERVER
Uniti proces

SERVER

sevlet
kod

57

Prednosti Java Servleta

Efikasnost prilikom prvog zahteva prema servletu, server mora


pokrenuti novi proces unutar Java virtualne maine, ali za svaki sledei
zahtev prema tom servletu, JVM kreira samo malu Java nit (eng. Thread)

Portabilnost zbog prirode napii jednom pokreni, bilo gde (eng. Write
once, run anywhere) Java idioma, servleti su portabilni na razliitim
SW/HW platformama

HTTP zahtev

prvi put novi proces


sledei put samo
nova nit (thread)

58

29

Nedostaci Java servleta

Java servleti mogu biti sporiji od CGI skripta, u situacijama gde


servlet poziva veliki broj korisnika

Vidljiv nedostatak je i vezivanje za samo jedan programski jezik


Java (to je vano samo za programere i ne smatra se nedostakom
tehnologije)

HTML kao izlaz iz servleta je prilian problem, jer je re o


internom tampanju HTML koda iz servleta teko itljive i
sloene izlazne naredbe, koje sadre HTML i programski kod
ostatka aplikacije

59

Serverski skriptovi

esto nazivan serverski HTML ili serverski skriptovi pridruivanje


programiranja Web stranama na relativno jednostavan i brz nain

Cilj serverskih skriptova: izrada posebnih HTML datoteka ili ablona koji
sadre smeu skripta i HTML elemenata, koje e server po potrebi uitati

Postoje mnoga okruenja za serverske skriptove:

PHP Personal Home Page

ASP - Active Server Pages

ASP.NET

JSP - JavaServer Pages

ColdFusion..

Razlike su veoma male glavna razlika izmeu okruenja jeste sintaksa

60

30

Primer serverske analize HTML


dokumenta

HTTP zahtev

61

Primer serverske analize dokumenta

ita

Web server
Zahtev za
dokumentom
Vraanje
rezultujueg
HTML dokumenta

Uitavanje
dokumenta
analiza
serverskog
skripta

HTML sa serverskim
skriptom

62

31

ASP

ASP ("Stranice aktivne na serveru", eng. Active Server Pages)


predstavlja jedan od skriptnih jezika za razvijanje Internet sajtova,
razvijen od strane kompanije Microsoft.

Njegov glavni takmac na Internet tritu je PHP, koji ima tu


osobinu da je besplatan i slobodan, dok su ASP i svi proizvodi
potrebni za njegovo korienje komercijalni i u vlasnitvu
kompanije Microsoft.

Sa druge strane, Microsoft konstantno odrava i dodaje nove


mogunosti svom paketu, na taj nain ga inei modernim, vrstim
i pruajui svojim klijentima svu moguu tehniku podrku.

63

ASP

Nakon uvoenja .NET tehnologije, Microsoft je i ASP prilagodio


istom, tako da je u upotrebi verzija ASP.NET 2.0, objavljena 2005.
godine.

ASP je skriptni jezik, kao i PHP, i potreban je interpreter na


serverskoj strani da bi isti mogao da radi.

ASP nije programski jezik, ve tehnologija koja omoguava


programiranje Web servera, dok programski jezik zavisi od izbora
autora:

VBScript najee korien


JScript Microsoftova verzija JavaScript jezika
C# (samo za ASP.NET)
Vie od 19 jezika (samo ASP.NET) razvijenih od nezavisnih firmi
64

32

ASP

65

Kvantitativno poreenje
serverskih tehnologija

Cena

66

33

Kvantitativno poreenje
serverskih tehnologija

67

Tehnologije
distribuiranih objekata

34

Osnovni koncepti

Koncept distribuiranih objekata - neki objekat (instanca klase)


sa svojim metodama i atributima moe da postoji na nekom
raunaru i da drugi programi, odnosno objekti, koji se izvravaju na
drugim raunarima mogu da mu pristupaju.

Pristup tom objektu mogunost pozivanja metoda i pristupa


njegovim atributima.

Pristup tom serverskom objektu bi, sa strane ostalih uesnika


(klijenata), trebalo da bude to jednostavniji.

U idealnom sluaju pristup njemu ne bi trebalo da se razlikuje od


pristupa lokalnim objektima ostalim objektima koji se nalaze u
sastavu programa.
69

Osnovni koncepti

Poziv metode serverskog objekta podrazumava izvr avanje


te metode na onom raunaru na kome se nalazi sam objekat.

To znai da se klijentski program izvrava na vie raunara


inicijalno na onom na kome je pokrenut, ali i na svim
raunarima na kojima se nalaze serverski objekti koje on
koristi.

70

35

Poziv metode serverskog objekta


1. poziv metode

Serverski
objekat

Klijent

2. Izvrenje metode

3. rezultat
Komunikacija dva objekta:
klijentski objekat je deo klijentske aplikacije, a serverski objekat je deo
serverske aplikacije.
Serverska aplikacija se esto naziva kontejner za objekte jer je njena osnovna
funkcija da obezbedi mrene i druge servise koji su neophodni za ovakav
serverski objekat.

71

Klijentski i serverski objekat u


okviru svojih programa
Klijent

Serverski
objekat

Klijent aplikacija

kontejner

Posmatrano sa stanovita autora klijentske aplikacije, i klijentski i serverski objekat


su sastavni deo jednog programa.

Osobina tog programa je da se izvrava na vie raunara u mrei.


Serverski program, logiki posmatrano, i ne postoji; postoji samo serverski
objekat koji se ponaa/koristi kao da je deo klijentskog (jedinog) programa.

72

36

Tehnologije distribuiranih objekata

COM/DCOM - (Distributed) Component Object Model

RMI - Remote Method Invocation

CORBA - Common Object Request Broker Architecture

EJB - Enterprise JavaBeans

73

Tehnologije
distribuiranih objekata

37

You might also like