Ws13 1(2010-11)

Post on 29-Nov-2014

1.055 views 0 download

description

 

Transcript of Ws13 1(2010-11)

WS.13-1Βασικά πρωτόκολλα και γλώσσες ∆ιαδικτύου και

Παγκόσµιου Ιστού, Βασικά Πρότυπα

Ιωάννης Αναγνωστόπουλος

Το ∆ιαδίκτυο ( Internet )

• Το ∆ιαδίκτυο είναι ένα WAN που καλύπτει ολόκληρο τον πλανήτη

• Η λέξη Internet από τον όρο internetworking, ο οποίος υποδηλώνειεπικοινωνία µεταξύ δικτύων

• Ξεκίνησε σαν ένα ερευνητικό πρόγραµµα της κυβέρνησης των ΗΠΑ, επιχορηγούµενο από την Advanced Research Projects Agency (ARPA). Αρχικά ονοµάζονταν ARPANET

• Το Internet αναπτύχθηκε γρήγορα στη δεκαετία του 90• Το 1983 ήταν συνδεδεµένοι στο Internet λιγότεροι από 600 Η/Υ, ενώ τώρα…

Ανάπτυξη του Internet: Συνδεδεµένοι Η/Υ

Περισσότερα στατιστικά:

nua.ie, mids.org, ripe.net, netcraft.com, gvu.gatech.edu, netsizer.com (Telcordia), caida.com, isoc.org

“Αόρατο” Web

Η επίδραση των κοινωνικών δικτύων στο web

Εκτίµηση µεγέθους στο ορατό Web

Εξέλιξη Τεχνολογιών

Εξελικτικά προβλήµατα – “the image from the past problem”

user’s submission at time: t0

t i

back time shift : [ t0 - tr+1 ]

ti+1

Content A Content A*

t r t r+1

time (t)

Content A* is not searchable

[ tr+1 , ti+1 )

Content A is searchable

[ ti , tr+1 )

t r+2

Content A**

ti+2

Content A** is not searchable

[ tr+2 , tr+3 )

Cached Content A Cached Content A*

visible invisible visible invisible

Content A is not searchable

[ tr , ti )

Content A* is searchable

[ ti+1 , tr+2 )

invisible

Content A***

t r+3

Content A*** is not searchable and

Content A** is lost

[ tr+3 , ti+2 )

tr: content is A, tr+1: content changes to A*, tr+2: content changes to A** , tr+3: content changes to A***

ti: content A is cached, ti+1: content A* is cached, ti+2: content A*** is cached

Cached Content A***

visible

Content A*** is searchable

[ ti+2 , …)

user’s submission at time: t0

t i

back time shift : [ t0 - tr+1 ]

ti+1

Content A Content A*

t r t r+1

time (t)

Content A* is not searchable

[ tr+1 , ti+1 )

Content A is searchable

[ ti , tr+1 )

t r+2

Content A**

ti+2

Content A** is not searchable

[ tr+2 , tr+3 )

Cached Content A Cached Content A*

visible invisible visible invisible

Content A is not searchable

[ tr , ti )

Content A* is searchable

[ ti+1 , tr+2 )

invisible

Content A***

t r+3

Content A*** is not searchable and

Content A** is lost

[ tr+3 , ti+2 )

tr: content is A, tr+1: content changes to A*, tr+2: content changes to A** , tr+3: content changes to A***

ti: content A is cached, ti+1: content A* is cached, ti+2: content A*** is cached

Cached Content A***

visible

Content A*** is searchable

[ ti+2 , …)

LOST

∆ιευθύνσεις - Ονόµατα Περιοχής - DNS

•Οι Η/Υ έχουν ένα µοναδικό (ευµνηµόνευτο από ανθρώπους) όνοµα στο ∆ιαδίκτυο(που αντιστοιχίζεται στην IP διεύθυνσή του)

sapfo.lesvos.aegean.gr(αντιστοιχεί στην IP διεύθυνση 195.251.128.3)zeus.harvard.edu (IP διεύθυνση?)

•Το πρώτο τµήµα δηλώνει έναν ειδικά Η/Υ (sapfo)•Το υπόλοιπο είναι το όνοµα περιοχής (domain name), που δηλώνει τον οργανισµό(lesvos.aegean.gr)• Μοναδικά ονόµατα περιοχής σηµαίνει ότι πολλαπλές τοποθεσίες µπορούν να έχουνατοµικούς Η/Υ µε το ίδιο τοπικό όνοµα (π.χ. sapfo.di.uoa.gr)•Το τελευταίο τµήµα (πρόσφυµα, suffix) κάθε ονόµατος περιοχής συνήθως υποδηλώνειτον τύπο του οργανισµού ή τη χώρα

DNS @ WikipediaThe Domain Name System (DNS) is a hierarchical naming system for computers,

services, or any resource participating in the Internet. It associates various information with domain names assigned to such participants. Most importantly, it translates

domain names meaningful to humans into the numerical (binary) identifiers associated with networking equipment for the purpose of locating and addressing these devices

world-wide. An often used analogy to explain the Domain Name System is that it serves as the "phone book" for the Internet by translating human-friendly computer hostnames

into IP addresses. For example, www.example.com translates to 208.77.188.166.

∆ιευθύνσεις - Ονόµατα Περιοχής - DNS

∆ιευθύνσεις - Ονόµατα Περιοχής - DNS

Γενική εικόνα

∆ιευθύνσεις - Ονόµατα Περιοχής - DNS

Ειδική εικόνα

Top Level Domains

edueducomcomorgorgnetnet

-- εκπαιδευτικόεκπαιδευτικό ίδρυµαίδρυµα

-- εµπορικήεµπορική επιχείρησηεπιχείρηση

-- µηµη κερδοσκοπικήκερδοσκοπική επιχείρησηεπιχείρηση

-- διαδικτυακόςδιαδικτυακός οργανισµόςοργανισµός

Το πρόσφυµα ως δηλωτικό της χώρας:

ΝέεςΝέες κατηγορίεςκατηγορίες προσφυµάτωνπροσφυµάτων

είναιείναι υπόυπό θεώρησηθεώρηση

ukukauaucacasesegrgr

-- ΕνωµένοΕνωµένο ΒασίλειοΒασίλειο

-- ΑυστραλίαΑυστραλία

-- ΚαναδάςΚαναδάς

-- ΣουηδίαΣουηδία

• Για παράδειγµα,

-- ΕλλάδαΕλλάδα

Management of most top-level domains is delegated to responsible parties or organizations by the Internet Corporation for Assigned Names and Numbers (ICANN), which operates the Internet Assigned Numbers Authority (IANA) and is in charge of maintaining the DNS root zone.

Top Level Domains - Greece

http://www.iana.org/domains/root/db/gr.html

Κύριες Εφαρµογές

• Tο Internetσυχνά συγχέεται µε τις εφαρµογές που δουλεύουν επί τουInternet.

• Τέτοιες δηµοφιλείς εφαρµογές είναι οι:

– E-Mail

– News

– Telnet

– File Transfer Protocol (FTP)

– Internet Relay Chat (IRC)

– The World Wide Web

– Rich Content Applications

– Web 2.0

– Collaborative Knowledge

Εφαρµογές για Internet – File Transfer Protocol (FTP )

• Το FTPείναι ένα εργαλείο βασισµένο στο Internetγια να µεταφέρουµεαρχεία από έναν Η/Υ σε άλλον.

• Πρόσβαση µε ειδικό λογισµικό FTP ή Web browser– π.χ. ftp://lito.samos.aegean.gr/

username: samos/useridpassword: xxxxxxxx

• Τα πανεπιστήµια και οι εταιρείες λογισµικού χρησιµοποιούν FTP serversγια να παρέχουν σε επισκέπτες πρόσβαση σε δεδοµένα (ανώνυµο ftp για νααποφεύγεται η ανάγκη για λογαριασµούς).

• Στην πιο ανεπεξέργαστη µορφή του υποστηρίζει εντολές βασισµένες σεκείµενο.

Εφαρµογές για Internet – Internet Relay Chat ( IRC )

• Το Internet Relay Chat (IRC)είναι µια υπηρεσία που επιτρέπει σε χρήστες ναεπικοινωνούν σε πραγµατικό χρόνο τυπώνοντας κείµενο σε ένα ειδικόπαράθυρο.

• Όπως µε τη newsυπάρχουν εκατοντάδες IRC ‘‘ καναλιών’’, το καθένααφιερωµένο σε ένα θέµα ή οµάδα χρηστών.

• Υπάρχουν ειδικά λογισµικά IRC, αλλά πολλά chatrooms είναι εγκατεστηµένασε τοποθεσίες του Web (Web sites) δίνοντας τη δυνατότητα στους επισκέπτεςνα συζητούν απευθείας µέσω του παράθυρου του browser τους.

Εφαρµογές για Internet – The World Wide Web ( WWW)

• Εµφανίζεται το 1993 και «απογειώνει» το Internet• Προέρχεται από ένα εσωτερικό σύστηµα διαχείρισης εγγράφων που

αναπτύχθηκε από τον Tim Berners-Lee για συναδέλφους του φυσικούς στοCERN (Ελβετία). Πρωτοµιλάει για το www το 1990.

• Αποτελεί σύνθεση τριών τεχνολογιών:– ∆ίκτυα Η/Υ– ∆ιαχείριση εγγράφων / πληροφορίας– Λογισµικό γραφικής διεπαφής µε χρήστες (graphical user interface)

• Το WWW υποστηρίζει έγγραφα υπερκειµένου (hypertext documents) καιεπιτρέπει στους χρήστες να βλέπουν και να κάνουν πλοήγηση σεδιαφορετικούς τύπους δεδοµένων.

• Μέσο επικοινωνίας όχι διαφορετικό από τους παρόµοιους πρόγονους του(ραδιόφωνο, τηλεόραση, ...). Όµως ο καθένας µπορεί να γράψει µιαιστοσελίδα (Web page) και να την κάνει διαθέσιµη σε κοινή θέα.

Άλλες χρήσεις

• Σήµερα:

– e-Banking

– Επικοινωνίες (π.χ. e-mail, chat, …)

– Προσοµοίωση (simulation)

– ∆ιασκέδαση

– Ενηµέρωση

– Εκπαίδευση

• Αύριο:

– Ηλεκτρονική Ψήφος

– Τηλε-εργασία

– Εικονικές Περιηγήσεις

Ο Η/Υ NeXT στον οποίο «έτρεξε» ο πρώτος web server και browser στο CERN

Και η οθόνη του…

Υπερκείµενο ( HyperText )

• Το Web είναι βασισµένο στην έννοιατου υπερκειµένου - ένας µηχανισµόςόπου η πληροφορία είναικατανεµηµένη σε πολλές σελίδες καιδια-συνδεδεµένη. Επιτρέπει τηνπλοήγηση ανάµεσα σε πληροφορίεςµε µη γραµµικό τρόπο

• Το 1990 κυκλοφόρησε ο πρώτος Web browser, βασισµένος σε κείµενο καιικανός να ακολουθεί βασισµένους σεκείµενο υπερσυνδέσµους. Η ανάγκηυποστήριξης γραφικών οδήγησε στονπρώτο Web browserγραφικών –Mosaic –τον πρόγονο του Netscape.

• Μια τυπική web σελίδα σήµεραυποστηρίζει κείµενο, πίνακες, πλαίσια, φόρµες, ήχο, βίντεο, ...

Υπερκειµενική Ονοµατοδοσία (URI)

Uniform Resource IdentifierUniform Resource LocatorUniform Resource Name

Υπερκειµενική Ονοµατοδοσία (URI) - Παράδειγµα

Υπερκειµενική Ονοµατοδοσία (URI) –Παράδειγµα στο WEB

Ταυτότητα Βιβλίου:

urn:ISBN-13: 978-0131752429

Πρόσβαση:

http://www.amazon.co.uk/Internet-World-Wide-Web-Program/dp/0131752421/ref=sr_1_1?ie=UTF8&s=books&qi d=1255874240&sr=1-1

Πρόσβαση Ταυτότητα

Υπερκειµενική Ονοµατοδοσία (URI) –Παράδειγµα σε ∆ίκτυα

Ταυτότητα Βιβλίου:

urn:ISBN-13: 978-0131752429

Πρόσβαση:

ftp://147.102.16.12/Books/Internet_and_Web/Deitel_W eb_how_to_program.pdf

Πρόσβαση Ταυτότητα

Υπερκειµενική Ονοµατοδοσία (URI) –Παράδειγµα local file system

Ταυτότητα Βιβλίου:

urn:ISBN-13: 978-0131752429

Πρόσβαση:

file:///home/username/Deitel_Web_how_to_program.pdf

Πρόσβαση Ταυτότητα

Αναζήτηση Πληροφορίας

• Το Webείναι τώρα µια τεράστια πηγή πληροφορίας και δεδοµένων -Πως µπορεί κανείς να ψάξει αυτή την πελώρια αποθήκη για τησυγκεκριµένη πληροφορία που χρειάζεται;

• Xρησιµοποιoύνται οι Μηχανές Αναζήτησης (search engines): Google, Altavista, InfoSeek, …

• Αναζητήσεις µε λέξεις κλειδιά (keywords) και Boolean λογική• Επιστροφή αποτελεσµάτων (σελίδες που περιέχουν τα keywords) µε

συνδέσµους προς τις αρχικές θέσεις των εγγράφων. • Οι βάσεις δεδοµένων των µηχανών αναζήτησης είναι κτισµένες µε

αυτοµατοποιηµένα botsor spiders -λογισµικό που ψαρεύει στο Webδιαβάζοντας και ανακτώντας την πληροφορία που χρειάζεται ναπροσθέσουν στη βάση δεδοµένων τους. Τα αποτελέσµατα ποικίλουνανάλογα µε τη µηχανή αναζήτησης.

• Αντίστοιχα bots χρησιµοποιούν και οι spammers για να «ψαρεύουν»email διευθύνσεις

• Κάποιες µετα-µηχανές αναζήτησης (MetaCrowler, OneSeek) κάνουνπαράλληλες αναζητήσεις χρησιµοποιώντας διαφορετικές µηχανέςαναζήτησης.

Τι κάνει ένας πελάτης ( web client )

• Αφού συνδεθεί, ο χρήστης προσπελαύνει το Webµέσω λογισµικού πουλέγεται browser (π.χ. Netscape, Internet Explorer…, Mozilla Firefox).

• Οι browsersεντοπίζουν και εµφανίζουν πληροφορία από το Web.• Η επικοινωνία γίνεται µέσω µιας συµφωνηµένης γλώσσας µεταφοράς ή

πρωτοκόλλου, π.χ. HTTP (HyperText Transfer Protocol).• Ο χρήστης ζητάει µια ιστοσελίδα µέσω του browser ο οποίος το κοινοποιεί

στον εξυπηρετητή.• Ο browserπεριµένει να µεταφερθεί η ιστοσελίδα, τυπικά ένα αρχείο

κειµένου που περιέχει οδηγίες σε HTML.• Τα περίπλοκα γραφικά και η µορφοποίηση που βρίσκει κανείς στις

ιστοσελίδες είναι αποτέλεσµα από τον client browserπου ανταποδίδει τηνσελίδα στη µορφοποίηση που ήταν καθορισµένη στο αρχείο.

• Οι εικόνες και γραφικά δεν αποτελούν µέρος µιας HTML σελίδας αλλάαποστέλλονται ξεχωριστά (απλά ο browser διαβάζει την HTML σελίδα καιεµφανίζει τα γραφικά βάσει των οδηγιών που περιλαµβάνονται στηνHTML).

Τι κάνει ένας εξυπηρετητής (web server)

• Η δουλειά του server είναι πιο εύκολη.• Ο serverείναι λογισµικό (π.χ. Apache Server ή Microsoft Internet

Information Server) που τρέχει σ’ έναν υπολογιστή και αποκρίνεται στιςαιτήσεις του client για ιστοσελίδες

• Οι ιστοσελίδες υπάρχουν στο τοπικό του σύστηµα αρχείων.• Ο serverανακτά και διαβιβάζει τα αρχεία στον client

Πλοήγηση στο Web

• Για να προσπελάσουµε µια ιστοσελίδα, πρέπει να καθοριστεί στονbrowser η ακριβής της διεύθυνση, πληκτρολογώντας την, ή κάνονταςκλικ σ’ ένα σύνδεσµο υπερκειµένου.

• Αυτή η διεύθυνση είναι o οµοιόµορφος εντοπιστής πόρων* (UniformResource Locator - URL).

• Η διεύθυνση URL περιέχει όλη την αναγκαία πληροφορία για τηµονοσήµαντη ταυτοποίηση ενός συγκεκριµένου αρχείου στον κόσµο.

http://www.lib.aegean.gr/SERVICES/online_journals/JOURNALS.htm

* κατά ΕΛΟΤ

Ο τρόπος οργάνωσης

http://www.lib.aegean.gr/SERVICES/online_journals/JOURNALS.htm

Πρωτόκολλο

για τη

µεταφορά της

ιστοσελίδας

Είδος

server

Όνοµα

περιοχής του

server (DNS)

Directory στοδίσκο του

server (alias)

Όνοµα

αρχείου

ιστοσελίδας

Ο τρόπος οργάνωσης

• Όταν αποθηκεύουµε µια ιστοσελίδα σε έναν εξυπηρετητή ιστού (web server), τότε λέµε ότι «δηµοσιεύουµε» τη σελίδα στο διαδίκτυο.

• Κάθε χρήστης/ίδρυµα/οργανισµός/εταιρία που θέλει να έχει παρουσία στο

web οργανώνει της πληροφορίες του δηµιουργώντας ένα σύνολο

ιστοσελίδων, συνδεδεµένων µε συστηµατικό τρόπο και ιεραρχική

οργάνωση.

• Το σύνολο αυτών των ιστοσελίδων αποτελεί την τοποθεσία (web site).

Εξυπηρετητές παγκόσµιου ιστού (Web servers)

• Οι web servers λειτουργούν ως χώροιαποθήκευσης ιστοσελίδων. Αποτελούνται από:– Υλικό (PC, workstation)– Λειτουργικό σύστηµα (Windows

NT, 2000, XP, Unix)– Λογισµικό web server: Apache

(60% της αγοράς, open-source), IIS (τρέχει σε Windows)

• Στον ίδιο Η/Υ όπου τρέχει ο web server µπορούν να τρέχουν κι άλλοιservers (services)

• Οι web servers «ακούνε» σε µίασυγκεκριµένη πόρτα (port 80) περιµένοντας αιτήσεις από clients (browsers) Browser

Browser Browser

Web Server

Internet

BrowserBrowser Browser

Web Server

Internet

Μοντέλο Client-Server στο Web

• Client (πελάτης): web browser (Microsoft Internet Explorer, Netscape Navigator, …)

• Server (εξυπηρέτης): web server– Υλικό (PC, workstation)– Λειτουργικό σύστηµα (Windows NT, 2000, XP, Unix)– Λογισµικό web server: Apache (52% της αγοράς, open-source), IIS (33% της

αγοράς), Google Web Server (6% της αγοράς)• HTTP: HyperText Transfer Protocol• HTML: HyperText Meta Language

Web browser

Webserver

HTTP Αίτηση

HTTP Απόκριση

Web server

filesystem

Ανάκτηση

αρχείων

Internet

DNS server

«Συνοµιλία» web client (browser) – web serverΠιο αναλυτικά…

• Τι συµβαίνει από τη στιγµή που πληκτρολογήσουµε τη διεύθυνση µιας

τοποθεσίας:

1. O browser απευθύνεται στον DNS server που εξετάζοντας τη URL εντοπίζει την IP διεύθυνση του web server στον οποίο απευθύνεται η

αίτηση

2. Ο browser στέλνει το αίτηµα για αποστολή της ιστοσελίδας στον web server

3. Το αίτηµα φτάνει στον web server που αναζητά και ανακτά την

αιτούµενη σελίδα από τον τοπικό του δίσκο

4. Η ιστοσελίδα αποστέλλεται (µέσω HTTP)

«Συνοµιλία» web client (browser) – web server (II)

• Τι συµβαίνει από τη στιγµή που πληκτρολογήσουµε τη διεύθυνση µιας

τοποθεσίας (συνέχεια):

5. Ο browser λαµβάνει την ιστοσελίδα (HTML αρχείο), διαβάζει τιςοδηγίες του HTML κώδικα και σχεδιάζει το περιεχόµενο αντίστοιχα

6. Αν η ιστοσελίδα περιέχει φωτογραφίες, αυτές στέλνονται ωςξεχωριστά αρχεία από τον web server στον browser.

7. To ίσιο συµβαίνει στην περίπτωση που η σελίδα «περιλαµβάνει» και

applets

8. Αν ο HTML κώδικας έχει και ενσωµατωµένο κώδικα σεναρίου

(γραµµένο σε κάποια script γλώσσα, π.χ. Javascript), αυτός εκτελείταιαπό τον browser.

HTTP

• Το πρωτόκολλο που χρησιµοποιείται στο www• Καθορίζει τη µορφοποίηση των µηνυµάτων (πακέτων) κατά τη µετάδοσή

τους και τις ενέργειες που πρέπει να ακολουθήσουν οι web servers και οιweb clients (browsers) ώστε να ανταποκριθούν στις διάφορες εντολές

• π.χ., όταν εισάγουµε µια URL σε έναν browser,ουσιαστικά στέλνεται µιαεντολή µέσω HTTP σε ένα αποµακρυσµένο web server κατευθύνοντάς τοννα ανακτήσει και να αποστείλει µια συγκεκριµένη ιστοσελίδα (HTML αρχείο)

• To HTTP είναι «αµνήµων» (stateless system):για την ολοκλήρωση µιαςαποστολής (π.χ. ιστοσελίδα µε κείµενο και εικόνες) απαιτούνταιπολλαπλές συνδέσεις (αιτήσεις/αποκρίσεις). Έτσι αυξάνεται η κλιµάκωση(scalability)καθώς εξυπηρετούνται ταυτόχρονα πολλοί clients αλλάµειώνεται η ταχύτητα.

HTTP

HTTP GET/REQUEST methods

www.example.com/index.html

Client request

Server response

[Κενή γραµµή][content][…]

HTTP GET/REQUEST methods

List of HTTP status codes

1xx Informational

2xx Success (200 OK, 202 Accepted/Not completed, 20 6 Partial Content)

3xx Redirection (302 Found, 303 See other redi rect, 305 Use proxy)

4xx Client Error ( 402 Payment required, 403 Forbidden, 404 Not Found, 408 Timeout)

5xx Server Error (500 Internal Server Error, 502 Ba d Gateway, 503 Service Unavailable)

Ένας proxy server είναι ένας µεσάζων µεταξύ ενός client και ενός άλλου server (origin server). για τον client, ο proxy δρα ως server.

για τον server (origin), ο proxy δρα ως client.

Client Proxy OriginServer

HTTP requestHTTP request HTTP requestHTTP request

HTTP responseHTTP responseHTTP responseHTTP response

proxy servers

• ∆ιεκπεραιώνουν χρήσιµες λειτουργίες όπως

αιτήσεις και απαντήσεις

– Π.χ.: Caching, logging, ασφάλεια

ClientA

Proxycache

OriginServer

Request foo.html

Request foo.html

foo.html

foo.html

ClientB

Request foo.html

foo.html

Fast inexpensive local network

Slower more expensive

global network

proxy servers

Check Etag

ΠρογραµµατισµόςΠρογραµµατισµός στονστονπαγκόσµιοπαγκόσµιο ιστόιστό απόαπό τηντην πλευράπλευρά

τουτου πελάτηπελάτη

((clientclient--side web programming)side web programming)

Client Side

• Tα ενεργά στοιχεία (κώδικας) «κατεβαίνουν» στο web browser µαζί µε τηστατική πληροφορία (HTML)

• O Browser πρέπει να µπορεί να εντοπίσει και να εκτελέσει τα ενεργάστοιχεία – προγράµµατα

• ∆ύο κατηγορίες τεχνολογιών:1. Ο κώδικας είναι προ-µεταγλωττισµένος, ο browser τον «ερµηνεύει»

(εκτελεί), π.χ. Java Applets2. Κώδικας σεναρίου (script), ο browser τον επεξεργάζεται και αν είναι

συντακτικά σωστός τον εκτελεί, π.χ. Javascript, VBscript)

WWW Browser

WWW Server

HTMLXHTML(CSSJavaScriptVbScript runtime environment)JVM (J Applets) / Active X

HTTP Request

HTTP Response

Client Side: Καταλληλότητα, Πλεονεκτήµατα, Μειονεκτήµατα

• Κατάλληλη τεχνολογία όταν:– Ελέγχεται η είσοδος του χρήστη (form validation)– Απαιτούνται πολύπλοκες λειτουργίες στον πελάτη (πχ. διάδραση)

• Πλεονεκτήµατα:– Ταχύτερες λόγω τοπικής εκτέλεσης

– ∆υνατότητα εκτέλεσης χωρίς συνεχή σύνδεση server/client– ∆υνατότητες, ευελιξία, ευχρηστία και καλαισθησία ιστοσελίδων

– Οικονοµία – Καµία εµπλοκή µε server• Μειονεκτήµατα:

– Ο κώδικας είναι ορατός

– ∆εν µπορεί να έχει πρόσβαση στο τοπικό file system– ∆εν τρέχουν σε όλους τους clients (browsers)

Client Side:Υπάρχουσες Τεχνολογίες

• Flash: τεχνολογία για δηµιουργία animation εφέ σε ιστοσελίδες.– Απαιτεί λιγότερο bandwidth από ένα videoπου πρέπει να γίνει «download»

πλαίσιο µε πλαίσιο (δουλεύει ικανοποιητικά και σε αργές Internet συνδέσεις). – Απαιτείται ειδικό λογισµικό εγκατεστηµένο στον client (plug-in στον browser).

Τέτοια plug-ins είναι δωρεάν διαθέσιµα για τους περισσότερους browsers . Ωστόσο δεν µπορεί να υποτεθεί ότι όλοι οι χρήστες «βλέπουν» τα flash animations.

– Για το σχεδιασµό Flash animationsαπαιτείται ειδικό λογισµικό.– Αν και τα Flash animationsµπορεί να είναι εντυπωσιακά, µπορεί να είναι και

ενοχλητικά (π.χ. Κάποιος θέλει να αναζητήσει κάποια συγκεκριµένη πληροφορίακαι θα πρέπει να περιµένει να «κατέβει» το animation.

• VBScript: µια γλώσσα βασισµένη στη Visual Basic, µε παρόµοιες δυνατότητες µε τηJavascript, αλλά δουλεύει µόνο στον Internet Explorer (τεχνολογία Microsoft).

• Java Applets• Javascript

Java AppletsJava Applets

Applets (µικρο-εφαρµογές)

• Προγράµµατα γραµµένα σε Java• Ενσωµατωµένες οδηγίες σε ιστοσελίδες για την εκτέλεσή τους

• Όταν ιστοσελίδες που περιέχουν applets εµφανίζονται σε Web browsers, τότε"φορτώνονται" και εκτελούνται και τα applets.

• Τα applets στέλνονται στον web client (browser) µε ξεχωριστή HTTP αίτηση/απόκριση

• Applet tags

– Μοιάζουν µε τα υπόλοιπα HTML Tags:

– <APPLET CODE="TestApplet.class" WIDTH=300 HEIGHT=200>

</APPLET>

• Η "έξοδος" του applet εµφανίζεται σε ένα

υποσύνολο της περιοχής εµφάνισης

πληροφοριών του browser. H

W

∆ιαδικασία εκτέλεσης Applet

HTML κώδικας

HTML κώδικας

Web browser

Web server

<HTML>

Hello!!!

<APPLET code=“welcome.class">

</APPLET>

An applet is running above!

</BODY>

</HTML>

page.html

welcome.class

$%@#$$#@bgdb

234#$%#%^#^&

4$%#%pgb$f#@$

23%^^565^&&m(!@#$6432

1

2

Κενός χώρος

(εδώ θα εµφανιστεί

το Αpplet)

Προγραµµατισµός στονπαγκόσµιο ιστό από την πλευρά

του εξυπηρέτη

(server-side web programming)

Server-Side programming

WWW Browser

WWW Server

Επεξεργασία

δυναµικών

σελίδων

(ASP, JSP,PHP, Servlets)

HTML

DHTML(CSS

JavaScriptVbScript runtime

environment)

JVM (J Applets) / Active X

Βάση

∆εδοµένων

ApplicationServers

HTTP Request (+Παράµετρο)

HTTP Response: HTML ∆υναµική

Web browser

Web server

<html><body><?php

if ($grade >= 5) echo "You have passed!“

else echo "You have failed";?></body></html>

process_grade.php

<html>

<body>

You have passed!!!

</body>

</html>

PHPengine

1. O χρήστηςσυµπληρώνει τη

φόρµα και πατάει

το πλήκτρο Submit

2. O browser στέλνει τηνπαράµετρο $grade (=7)και ζητάει την αποστολή

της σελίδας

process_grade.php

3. O server λαµβάνει τηναίτηση και ζητάει την

εκτέλεση των ενεργών

στοιχείων της σελίδας

process_grade.php από

την PHP µηχανή

4. Η PHP µηχανήεκτελεί τον

κώδικα και

επιστρέφει

«καθαρό» HTML5. O server επιστρέφει τον

HTML κώδικα στον

browser που τον

εµφανίζει

Αλληλεπίδραση browser-web server µε χρήση

τεχνολογίας server side

Server Side: Καταλληλότητα, Πλεονεκτήµατα, Μειονεκτήµατα

• Καταλληλότητα:

– ∆υναµική / Παραµετρική εµφάνιση περιεχοµένου

– Απαραίτητο όταν απαιτείται επικοινωνία (αλληλεπίδραση) µε τον Server

– ∆υνατότητα ελέγχου των χρηστών π.χ. µε µετρητές επισκέψεων (hit counters), ελεγχόµενη πρόσβαση σε κάποιες σελίδες

• Πλεονεκτήµατα:

– Η επεξεργασία µεταφέρεται στο server, χρησιµοποιείται η ισχύς του server

– O κώδικας είναι κρυφός

– Η εκτέλεση του κώδικα είναι ανεξάρτητη του browser: στέλνεται “καθαρό” HTML που εµφανίζεται πανοµοιότυπο σε κάθε browser

– Η µοναδική λύση για πρόσβαση στο file system του server

• Μειονεκτήµατα:

– Χρησιµοποιεί πολύτιµη επεξεργαστική ισχύ του server.

– Κλιµάκωση (scalability)

Server Side: Τεχνολογίες

Ολοκλήρωση, αξιοπιστίαΟποιοσδήποτε web server

Java Servlets

∆ωρεάν, αξιοπιστία, εύκολη στη

χρήση

Apache (open source), IIS

PHP (.php)

Κλιµάκωση, αξιοπιστίαΟποιοσδήποτε web server

Java Server Pages (.jsp)

Σχετικά εύκολο στη χρήση, καλήενσωµάτωση/ ολοκλήρωση(integration), καλή υποστήριξη

(support) από Microsoft

MS IIS (Internet Information Server)

Active Server Pages (.asp)

ΠλεονεκτήµαταServerΤεχνολογία

http://en.wikipedia.org/wiki/Server-side_scripting

References

• Αναγνωστόπουλος Ιωάννης, Τεχνολογίες ∆ιαδικτύου, Πανεπιστήµιο Αιγαίου

•Γαβαλάς ∆αµιανός, Τεχνολογίες Παγκόσµιου Ιστού, Πανεπιστήµιο Αιγαίου

• Αναγνωστόπουλος Ιωάννης, Προγραµµατισµός στο Παγκόσµιο Ιστό, Πανεπιστήµιο Αιγαίου