Προγραμματισμός Ιστοσελίδων (Web Design)

Σχετικά έγγραφα
Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Ιόνιο Πανεπιστήµιο. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα Θ. Υπηρεσίες Internet. ρ. Ε. Μάγκος

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ηλεκτρονικό Ταχυδρομείο - SMTP

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Υπολογιστές και ίκτυα Η/Υ.

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Τεχνολογίες ιαδικτύου

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Βασικές Έννοιες Web Εφαρμογών

Περιεχόμενα. Πρόλογος... xiii

Client server Peer-to-peer (Οµότιµα ίκτυα)

Δίκτυα Υπολογιστών Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 1: Εισαγωγή. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Το πρωτόκολλο ΗΤΤΡ (HyperText Transfer Protocol)

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

Ενότητα 1: HTTP, Clients και Servers. (Web, το θεμέλιο του Σημασιολογικού Ιστού)

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

Κεφάλαιο 2 Επίπεδο Εφαρμογής

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Εφαρμογής Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

Εισαγωγή στους Υπολογιστές

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία WWW / Πρωτόκολλο HTTP / Ρύθμιση Apache Web Server

ΔΙΚΤΥΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Θέματα Προγραμματισμού Διαδικτύου Εισαγωγή - Πρωτόκολλα

Περί δικτύων. Δρ. Ματθαίος Πατρινόπουλος

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Network Address Translation (NAT)

Εξοικείωση με τις εντολές ipconfig και ping

Εργαστηριακή Άσκηση 10 Πλοήγηση στον παγκόσμιο ιστό

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα εφαρμογής. Δίκτυα Υπολογιστών

Όχι, γιατί αν κάθε browser ζητά διαφορετικό αντικείμενο κάθε φορά τότε όχι μόνο δεν βελτιώνει αλλα χειροτερεύει τον χρόνο προσπέλασης

6.2 Υπηρεσίες Διαδικτύου

Τεχνολογίες Διαδικτύου

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης.

Τεχνικός Εφαρμογών Πληροφορικής

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Εγκατάσταση & Παραµετροποίηση Εξυπηρετητή Πιστοποίησης Χρηστών (Radius Server)

Το πρωτόκολλο HTTP 1

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

To λεξικό του Internet

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

1 η Διάλεξη: Εισαγωγή στο Διαδίκτυο

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

ιαχείριση Πληροφοριών στο ιαδίκτυο

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

Εργαστήριο Δικτύων Υπολογιστών

Επικοινωνία Client/Server

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Σχεδίαση και Ανάπτυξη Ιστότοπων

Για το μέρος αυτό της άσκησης θα υλοποιήσετε μια εφαρμογή κελύφους η οποία θα χρησιμοποιείται ως εξής:

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Κεφάλαιο 13 Εφαρμογές Διαδικτύου

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Μεταπτυχιακή Διατριβή

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Ειδικά Θέματα Προγραμματισμού

Επαναληπτικές Ασκήσεις Μαθήματος

2.9 Διαδίκτυο Χρήση του διαδικτύου για την εκτέλεση απλών εργασιών

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Σκοπιµότητα των firewalls

ιαδικτυακές Εφαρµογές

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Δίκτυα Η/Υ στην Επιχείρηση

Εργαστήριο Wireshark: HTTP

Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες (clients) είτε εξυπηρέτες (servers). Εξυπηρέτης: παθητικός,

Δίκτυα Θεωρία

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΤΕΧΝΟΛΟΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΔΙΑΔΙΚΤΥΑΚΟΥ ΤΟΠΟΥ (Web Site Design Technologies)

Transcript:

Προγραμματισμός Ιστοσελίδων (Web Design) Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Τηλεπικοινωνιών Ευάγγελος Α. Κοσμάτος

Ορισμός Web Ο Παγκόσμιος Ιστός (World Wide Web) ή απλά Web αποτελεί τον κόσμο των πληροφοριών που είναι προσβάσιμες από διασυνδεσεμένους υπολογιστές Το Διαδίκτυο (Internet) διαφέρει από το Web είναι ένα δίκτυο από υπολογιστές κάθε υπολογιστής δεν είναι απαραίτητο να ενεργεί ως πελάτης ή εξυπηρετητής. Προγραμματισμός ιστοσελίδων 2

Στοιχεία του Web Το Web αποτελείται από τρία βασικά συστατικά στοιχεία: Υποδομή ονοματολογίας (Uniform Resource Identifier - URI) Γλώσσα δημιουργίας εγγράφων (Hypertext Markup Language - HTML) Πρωτόκολλο ανταλλαγής μηνυμάτων (Hypertext Transfer Protocol - HTTP) Προγραμματισμός ιστοσελίδων 3

Uniform Resource Identifier - URI Η πρόσβαση και η διαχείρηση πληροφοριών και πόρων κατανεμημένων στο Web απαιτεί έναν τρόπο προσδιορισμού της ταυτότητάς τους. Το URI αποτελεί ένα παγκόσμιο μηχανισμό ονοματοδοσίας για τον προσδιορισμό της ταυτότητας πόρων στο Web ανεξαρτησία από τοποθεσία Το URI είναι ένας δείκτης προς ένα μαύρο κουτί στο οποίο αιτήσεις μπορούν να προκαλέσουν διαφορετικές αποκρίσεις σε διαφορετικές χρονικές στιγμές Αίτηση: απλές διαδικασίες φόρτωσης, αλλαγής ή διαγραφής πληροφοριών. Παράδειγμα URI: http:// www.uop.gr/coolpic.gif Προγραμματισμός ιστοσελίδων 4

Hypertext Markup Language - HTML Η γλώσσα HTML παρέχει έναν τρόπο παρουσίασης υπερκειμένων (hypertexts) σε μορφή ASCII Ένα HTML αρχείο είναι ένα αρχείο κειμένου που περιέχει markup tags Τα tags λένε στον Web Browser πώς να παρουσιάσει το περιεχόμενο της σελίδας Προγραμματισμός ιστοσελίδων 5

Hypertext Transfer Protocol - HTTP HTTP: Hyper-Text Transfer Protocol Πρωτόκολλο επιπέδου εφαρμογής μοντέλο πελάτη/εξυπηρετητή (client/server) πελάτης (client): browser που αιτεί, λαμβάνει και παρουσιάζει αντικείμενα από το Web εξυπηρετητής (server): Web server που στέλνει αντικείμενα σε απάντηση των αιτήσεων HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 Προγραμματισμός ιστοσελίδων 6

HTTP Χρήση TCP: Ο client εκκινεί ένα TCP connection (δημιουργεί και συνδέεται δηλαδή με socket) στον server, στο port 80 Ο server δέχεται το TCP connection του client Μηνύματα HTTP (applicationlayer protocol μηνύματα) ανταλλάζονται μεταξύ του browser (HTTP client) και του Web server (HTTP server) Τέλος, κλείνει το TCP connection To HTTP είναι stateless Ο server δεν συγκρατεί πληροφορία κατάστασης για τα παλαιότερα requests του client (απλή υλοποίηση) Τα πρωτόκολλα εφαρμογής που διατηρούν πληροφορία κατάστασης είναι σύνθετα! Πρέπει να διατηρείται η παλιά κατάσταση Αν ένα από τα δύο μέρη (server ή client) αποκοπεί, η κατάσταση των δύο μερών πρέπει να ανακτηθεί απ την αρχή σε τέτοιου είδους πρωτόκολλα Προγραμματισμός ιστοσελίδων 7

HTTP συνδέσεις Non-persistent HTTP (μη επίμονες) συνδέσεις Ένα το πολύ αντικείμενο μπορεί να σταλεί πάνω από μία TCP σύνδεση μεταξύ ενός client και ενός server Το HTTP/v.1.0 χρησιμοποιεί nonpersistent HTTP Persistent HTTP (επίμονες) συνδέσεις Πολλαπλά αντικείμενα μπορούν να σταλούν πάνω από μία TCP σύνδεση μεταξύ ενός client και ενός server Το HTTP/v.1.1 χρησιμοποιεί persistent connections σε default mode Προγραμματισμός ιστοσελίδων 8

Non-persistent HTTP Έστω ότι ο χρήστης επιθυμεί το URL www.uop.gr/index.html 1a. Ο HTTP client εκκινεί ένα TCP connection στον HTTP server (1 process στο socket) www.uop.gr στο port 80 2. Ο HTTP client στέλνει ένα HTTP request message (που περιέχει το URL) στο socket του TCP connection. Το message υποδεικνύει ότι ο client επιθυμεί το object index.html 1b. Ο HTTP server www.uop.gr βρίσκεται σε κατάσταση αναμονής περιμένοντας ένα TCP connection στο port 80. Δέχεται την αίτηση για σύνδεση (connection) και ειδοποιεί τον client 3. Ο HTTP server λαμβάνει το request message, συνθέτει το response message που περιέχει το ζητούμενο αντικείμενο (object) και στέλνει το message αυτό στο socket Προγραμματισμός ιστοσελίδων 9

Non-persistent HTTP 4b. Ο HTTP client λαμβάνει το μήνυμα απόκρισης (response message) που περιέχει το html αρχείο και το εμφανίζει. Κατά την επεξεργασία του html file, βρίσκει 5 σχετιζόμενα αντικείμενα τύπου jpeg 4a. Ο HTTP server κλείνει το TCP connection 5. Τα βήματα 1-4 επαναλαμβάνονται για κάθε ένα από τα 5 jpeg objects Προγραμματισμός ιστοσελίδων 10

Response time modeling RTT (Round Trip Time): ο χρόνος που απαιτείται για την αποστολή ενός μικρού πακέτου για να διανύσει την απόσταση από τον client στον server και πίσω Response time: Ένα RTT για την έναρξη του TCP connection Ένα RTT για την αποστολή του HTTP request έως και να ληφθούν τα πρώτα bytes του HTTP response file transmission time Τotal = 2RTT+Τransmit Τime initiate TCP connection RTT request file RTT file received time time time to transmit file Προγραμματισμός ιστοσελίδων 11

Persistent HTTP Προβλήματα Non-persistent HTTP : Απαιτεί 2 RTTs ανά ένα αντικείμενο Το λειτουργικό σύστημα πρέπει να απασχολείται συνεχώς για τον εντοπισμό resources για κάθε TCP σύνδεση (αφού κλείνει η σύνδεση) Όμως οι browsers συχνά ανοίγουν παράλληλα TCP connections προς τα διάφορα αντικείμενα Persistent HTTP Ο server αφήνει ανοιχτή τη σύνδεση αφού στείλει το response message Έτσι τα επακόλουθα HTTP messages μεταξύ των ίδιων client/server ανταλλάσσονται από την ίδια σύνδεση Persistent χωρίς pipelining: Ο client μπορεί να κάνει νέο request αν και μόνο αν έχει λάβει το προηγούμενο response Synchronous Χρονικά απαιτείται ένα RTT για κάθε αντικείμενο Persistent με pipelining: Default στο HTTP/v.1.1 Ο client μπορεί να στείλει νέα requests για νέα objects, χωρίς να έχει λάβει ακόμα απάντηση για προηγούμενα requests Asynchronous Θεωρητικά μπορεί χρονικά σε ένα RTT να αιτηθεί (να στείλει requests) για όλα τα αντικείμενα Προγραμματισμός ιστοσελίδων 12

HTTP request message Διακρίνουμε HTTP messages δύο τύπων: request & response HTTP request message: ASCII (human-readable format) GET /mylab/index.html HTTP/1.1 Host: www.uop.gr User-agent: Mozilla/1.1 Connection: close Accept: text/html,image/jpg,image/gif Accept-language:fr (extra carriage return, line feed) Προγραμματισμός ιστοσελίδων 13

Μηνύματα Αίτησης ΗΤΤΡ HTTP/1.0 GET Αίτηση μεταφοράς αρχείου POST Για αποστολή πληροφορίας από την πλευρά του client (π.χ. συμπλήρωση στοιχείων ηλεκτρονικής φόρμας) HEAD Παραπλήσιο με το μήνυμα GET, με τη σημαντική όμως διαφορά ότι άπαξ και ο client στείλει μήνυμα HEAD, ο server ΔΕΝ ΠΡΕΠΕΙ να περιέχει ΤΙΠΟΤΑ μέσα στο message body του response μηνύματος (χρησιμοποιείται για testing ή από τους proxies για τον έλεγχο ανάγκης ανανέωσης τοπικά αποθηκευμένων σελίδων) HTTP/1.1 GET, POST, HEAD PUT Κάνει upload το αρχείο που μεταφέρει στο entity body του μηνύματος, στο path που αναφέρει το URL πεδίο του μηνύματος DELETE Διαγράφει το αρχείο που περιγράφεται στο URL πεδίο του μηνύματος Προγραμματισμός ιστοσελίδων 14

GET request Η πιο συχνά χρησιμοποιούμενη αίτηση Χρησιμοποιείται για την αίτηση μεταφοράς αρχείου από τον Server ή για την εκτέλεση προγράμματος σε αυτόν Το URI περιέχει τον πόρο που ζητήθηκε Δεν περιέχει κάποιο μήνυμα αλλά το URI μπορεί να περιέχει παραμέτρους προς τον συγκεκριμένο πόρο του Web Server http://www.uop.gr/index.php?option=cources_content &task=view&id=36&itemid=67 Προγραμματισμός ιστοσελίδων 15

HTTP response message HTTP/1.1 200 OK Connection close Date: Thu, 22 Dec 2008 13:02:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2004... Content-Length: 6821 Content-Type: text/html data data data data data... Προγραμματισμός ιστοσελίδων 16

Περιεχόμενο στο Web Κάθε πόρος στο Web μπορεί να είναι διαθέσιμος σε διαφορετική μορφή: HTML XML Κάθε πόρος μπορεί να είναι: ένα στατικό αρχείο σε κάποιον εξυπηρετητή να δημιουργείται δυναμικά κατά την στιγμή του request Προγραμματισμός ιστοσελίδων 17

Δομικά στοιχεία του Web Πελάτης/Αντιπρόσωπος (Web Client/User agent) Ο πελάτης είναι ένας browser που δημιουργεί αιτήσεις για λογαριασμό ενός χρήστη Παρουσιάζει μια Web σελίδα Αποθηκεύει τα bookmarks του χρήστη Πληρεξούσιος (Proxy) Ο proxy αποτελεί έναν ενδιάμεσο μεταξύ πελάτη και εξυπηρετητή και εκτελεί διάφορες λειτουργίες φιλτράρισμα των αιτήσεων παροχή ανωνυμίας προσωρινή αποθήκευση (caching) δημοφιλών πόρων Προγραμματισμός ιστοσελίδων 18

Δομικά στοιχεία του Web Εξυπηρετητής (Server) Ο server δέχεται τις αιτήσεις του πελάτη και δημιουργεί αποκρίσεις Δίνει εντολές στον πελάτη να διατηρήσει την σύνδεση του με τον Server για μια σειρά από αιτήσεις και αποκρίσεις αποθήκευση cookie Προγραμματισμός ιστοσελίδων 19

Πελάτης (Web Client) Τρεις διαφορετικοί τύποι Web clients: Βrowser δημιουργεί μια Web request Spider O spider είναι ένα πρόγραμμα που δεν εκκινείτε από κάποιον χρήστη Τα Spiders είναι απαραίτητα για την αναζήτηση και ευρετηριοποίηση των πόρων Αgent Ο agent είναι ένα πρόγραμμα που τρέχει για λογαριασμό των χρηστών σε συγκεκριμένες εφαρμογές Προγραμματισμός ιστοσελίδων 20

Browser Είναι ο ποιος κοινός τύπος Web client. Μια σύνοδος σε ένα browser αποτελείται από μια σειρά από requests που στέλνονται από το χρήστη σε απάντηση των responses που λαμβάνονται σε κάθε χρονική στιγμή. Το βασικό πλεονέκτημα των μοντέρνων browser είναι η ικανότητά τους να μεταπηδούν ταχύτατα από πόρο σε πόρο Προγραμματισμός ιστοσελίδων 21

Browser Browser 1 DNS query DNS server URL Origin server 2 TCP Connection 3 HTTP Request 4 HTTP Response 5 Optional parallel connections Προγραμματισμός ιστοσελίδων 22

Browser Caching To browser caching χρησιμοποιεί δύο περιοχές του υπολογιστή: Ένα τμήμα της μνήμης (της τρέχουσας διαδικασίας) Ένα τμήμα του σκληρού δίσκου Επικαιροποίηση της Cache Ελέγχεται το αντίγραφο στην cache με το τρέχον αντίγραφο στο Server. Αν το αντίγραφο στην cache είναι παλαιότερο τότε ανανεώνεται από τη νέα έκδοση Προγραμματισμός ιστοσελίδων 23

Browser Caching Συνοχή στην Cache Έλεγχος για το αν το αντίγραφο στην cache είναι πρόσφατο Ισχυρός Ανανέωση του αντιγράφου της cache κάθε φορά που δημιουργείται αίτηση για το συγκεκριμένο πόρο. Ασθενής Περιοδική ανανέωση του αντιγράφου της cache Σταθερά διαστήματα Ανάλογα με τα χαρακτηριστικά των πόρων (μέγεθος, τύπος περιεχομένου, κτλ.) Προγραμματισμός ιστοσελίδων 24

Παραμετροποίηση Browser O browser μπορεί να παραμετροποιηθεί από τον χρήστη Καθορίσει πως θα δρομολογούνται οι αιτήσεις Μέσω πληρεξούσιου (proxy) Μέσω κάποιου άλλου ενδιάμεσου Κατευθείαν στον Server Καθορίσει πως θα λαμβάνονται οι αποκρίσεις Εμφάνιση των στοιχείων Υποστήριξη γλωσσών Ο browser μπορεί να χρησιμοποιήσει διάφορα βοηθητικά προγράμματα για να χειριστεί τις αποκρίσεις παραμετροποίηση της επιλογής και τις διαχείρησης των βοηθητικών εφαρμογών Προγραμματισμός ιστοσελίδων 25

Παραμετροποίηση Browser Content type Zip compressed data PostScript document Word document PDF document audio/video MIME type application/x-zipcompressed application/postscript application/msword application/pdf video/x-mpeg-2 Helper application gunzip/winzip32 ghostview/gsview32 catdoc/winword acroread/acrord32 raplayer/mplayer2 Τύποι περιεχομένου και βοηθητικά προγράμματα που καλούνται για την παρουσίασή τους Προγραμματισμός ιστοσελίδων 26

Παραμετροποίηση Browser Browser school.wmv Origin server 1 HTTP request για school.wmv 2 (Location, protocol) 3 Audio protocol request Audio client Media server Προγραμματισμός ιστοσελίδων 27

Παραμετροποίηση Browser Plug-in Κομμάτι κώδικα που χρησιμοποιείται για να ερμηνεύσει δεδομένα κάποιου τύπου Shockwave: χρήση του plug-in για την εμφάνιση animations Η ικανότητα του browser να υποστηρίζει διαφορετικά πρωτόκολλα Ενιαίο front end για ένα σύνολο από εφαρμογές. Προγραμματισμός ιστοσελίδων 28

Cookies Ένας τρόπος να διαχειριστούμε state στο πρωτόκολλο HTTP. Ένα μικρό κομμάτι δηλώσεων Στέλνεται από τον Server μιας ιστοσελίδας Αποθηκεύεται στο μηχάνημα του χρήστη για λογαριασμό του Server π.χ. «κάρτα αγορών». τι έχουμε ήδη επιλέξει για να αγοράσουμε τι αγοράσαμε κατά την τελευταία μας επίσκεψη Προγραμματισμός ιστοσελίδων 29

Cookies Την επόμενη φορά που ο χρήστης θα επισκεφθεί την ιστοσελίδα, ο browser θα περιλάβει στην επικεφαλίδα του request την πληροφορία στο cookie. Χρησιμοποιούνται σαν δείκτης στην βάση δεδομένων του server για να αναγνωρίσουν την κατάσταση του χρήστη Μπορεί να έχουν μέγεθος μέχρι 4KB. Κάθε browser μπορεί να υποστηρίξει μέχρι 20 cookies ανά server. Προγραμματισμός ιστοσελίδων 30

Cookies Client Request Origin Server A Client Response Set-Cookie: XYZ Origin Server A Client Request Cookie: XYZ Origin Server A Ανταλλαγή πληροφοριών μεταξύ πελάτη εξυπηρετητή με τη βοήθεια των cookies Προγραμματισμός ιστοσελίδων 31

Web Server O Web server είναι ένα πρόγραμμα που δημιουργεί και μεταδίδει responses σε απόκριση requests από πελάτες. Ο χειρισμός των requests αποτελείται από τα βήματα: ανάλυση του request μηνύματος ελέγχει αν το request είναι εξουσιοδοτημένο να ζητήσει το συγκεκριμένο πόρο συνδέει το URL που περιέχεται στο request με το όνομα του ζητούμενου αρχείου κατασκευάζει τo μήνυμα response μεταδίδει τo μήνυμα response στον πελάτη Προγραμματισμός ιστοσελίδων 32

Web Server Ο server μπορεί να δημιουργήσει το μήνυμα response με διαφορετικούς τρόπους: Ο server απλά προσπελαύνει το αρχείο που είναι συσχετισμένο με το URL και επιστρέφει το περιεχόμενό του στον πελάτη Ο server μπορεί να καλέσει ένα script που επικοινωνεί με άλλους servers ή βάσεις δεδομένων για να κατασκευάσει το μήνυμα response. Προγραμματισμός ιστοσελίδων 33

Έλεγχος πρόσβασης Ο Web server μπορεί να καθορίσει ποιοι χρήστες έχουν πρόσβαση σε ποιους πόρους. Ο έλεγχος πρόσβασης απαιτεί τον συνδυασμό των διαδικασιών πιστοποίησης και εξουσιοδότησης Η διαδικασία Πιστοποίησης (Authentication) αναγνωρίσει ποιος χρήστης έχει δημιουργήσει το request. Η διαδικασία Εξουσιοδότησης (Authorization) αποφασίζει ποιοι χρήστες έχουν πρόσβαση σε ένα συγκεκριμένο πόρο. Προγραμματισμός ιστοσελίδων 34

Πιστοποίηση Τα περισσότερα συστήματα client-server υλοποιούν την πιστοποίηση μέσω ενός ζεύγους username και password. Ο Web server πρέπει να εκτελέσει την διαδικασία πιστοποίησης σε κάθε request για έναν πόρο που έχει περιορισμούς πρόσβασης Ο server επιστρέφει ένα HTTP response που δηλώνει ότι η συγκεκριμένη αίτηση απαιτεί πιστοποίηση Το μήνυμα response δηλώνει τι είδους πιστοποίηση απαιτείται. Το μήνυμα response αναγνωρίζει τον χώρο επιρροής της πιστοποίησης (realm) οι πόροι στους οποίους μπορεί να έχει πρόσβαση ο συγκεκριμένος χρήστης Προγραμματισμός ιστοσελίδων 35

Εξουσιοδότηση Για να ελέγχει την πρόσβαση στους πόρους, ο server πρέπει να υιοθετήσει μια πολιτική εξουσιοδότησης. Μια πολιτική εξουσιοδότησης αποτελείται από μια λίστα ελέγχου πρόσβασης αναφέρει τους χρήστης που έχουν ή δεν έχουν πρόσβαση στον συγκεκριμένο πόρο Ο server μπορεί να επιτρέπει ή να απαγορεύει την πρόσβαση χρησιμοποιώντας άλλες πληροφορίες εκτός από το username την διεύθυνση IP του πελάτη το υποδίκτυο στο οποίο ανήκει ο πελάτης. Η πιστοποίηση HTTP requests μπορεί να δημιουργήσει τεράστιο φόρτο στον Web server. Προγραμματισμός ιστοσελίδων 36

Δημιουργία Cookies Τα Cookies δημιουργούνται, χρησιμοποιούνται και τροποποιούνται από scripts που εκτελούνται για να δημιουργήσουν δυναμικά responses και όχι από τον Web server. Ο Server δίνει εντολή στον browser να περιλαμβάνει κάποιο cookie σε κάθε HTTP request. Αν ένα request δεν περιλαμβάνει το cookie, τότε το script δημιουργεί ένα νέο cookie και περιλαμβάνει το cookie στην επικεφαλίδα του μηνύματος response. Set-Cookie: Customer="user17"; Version="1"; Path="/book" Το επόμενο μήνυμα request από το χρήστη θα περιλαμβάνει το cookie Cookie: Customer="user17"; Version="1"; Path="/book" Προγραμματισμός ιστοσελίδων 37

Χρήση Cookies Ένα script μπορεί να χρησιμοποιήσει το cookie ως αναγνωριστικό για τον χρήστη αλληλεπιδράσει με μια βάση δεδομένων Αποθηκεύοντας προσωπικές πληροφορίες σε ένα cookie αποφεύγουμε να τις διατηρήσουμε σε μια βάση δεδομένων. Προγραμματισμός ιστοσελίδων 38

Πληρεξούσιος (Proxy) Ο Proxy αποτελεί ένα ενδιάμεσο πρόγραμμα μεταξύ πελάτη και εξυπηρετητή μπορεί να βρίσκεται στον ίδιο ή σε διαφορετικό υπολογιστή από αυτόν που στέλνει το request. Ο Proxy ενεργεί για λογαριασμό μιας ομάδας χρηστών κατά την επικοινωνία με τον server. Ο Proxy ενεργεί ως ένας server για τους πελάτες ως πελάτης για άλλα proxies ή servers Προγραμματισμός ιστοσελίδων 39

Πληρεξούσιος (Proxy) O Proxy μπορεί να χρησιμοποιηθεί διαμοιρασμό της πρόσβασης σε πόρους αποθήκευση (caching) των responses υποστήριξη ανωνυμίας μετατροπή requests/responses φιλτράρισμα requests/responses Προγραμματισμός ιστοσελίδων 40

Πληρεξούσιος (Proxy) Client 1 Server 1 GET B GET B B Client 2 Client 3 GET A GET A A GET A Proxy Server 2 A Ο Proxy λειτουργεί ως ενδιάμεσος μεταξύ πελάτη και εξυπηρετητή αποθήκευση (caching) των responses Προγραμματισμός ιστοσελίδων 41

Gateway προς non-http συστήματα Ένας Proxy μπορεί να λειτουργήσει ως μεσάζοντας (όπως μια πύλη) για την επικοινωνία με δίκτυα που δεν χρησιμοποιούν το πρωτόκολλο HTTP. π.χ. κατά την επικοινωνία μεταξύ ενός πελάτη και ενός FTP server, ο proxy ενεργεί ως πύλη ο πελάτης και ο εξυπηρετητής δεν υποστηρίζουν το ίδιο πρωτόκολλο. Προγραμματισμός ιστοσελίδων 42

Gateway προς non-http συστήματα Client 1 FTP server F F HTTP server Client 2 Client 3 GET ftp-resource F GET A GET mail resource M A Proxy Mail server M A Προγραμματισμός ιστοσελίδων 43