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



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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

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

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

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

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

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Αποµακρυσµένη κλήση διαδικασιών

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

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

7.11 Πρωτόκολλα Εφαρµογής Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Εγχειρίδιο εγκατάστασης Megasoft 2009

7.11 Πρωτόκολλα εφαρµογής

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

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

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

7.2 Τεχνολογία TCP/IP

Προσοµοίωση λειτουργίας επιπέδων OSI

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

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

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης

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

Κεφάλαιο 7.3. Πρωτόκολλο TCP

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ 1 στα Δίκτυα Υπολογιστών


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

Οδηγός ανάγνωσης αποστολής

ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ

Network Address Translation (NAT)

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

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

ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ ΑΣΦΑΛΕΙΑΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

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

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

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

Εγχειρίδιο Χρήστη - Μαθητή

Ο ΗΓΙΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

Αντιµετώπιση προβληµάτων MPEG

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Πρωτόκολλα Διαδικτύου

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) Αθήνα, 1 Ιουνίου Εισαγωγή

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΥΠΗΡΕΣΙΕΣ

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Συνεχής ροή πολυµέσων

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

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

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

Ο ΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΟΒΟΛΗ ΑΙΤΗΣΗΣ ΕΓΓΡΑΦΗΣ ΣΤΟ ΜΗΤΡΩΟ ΑΞΙΟΛΟΓΗΤΩΝ ΕΡΓΩΝ Ι ΙΩΤΙΚΟΥ ΤΟΜΕΑ ΤΗΣ ΚΤΠ Α.Ε.

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

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

Οµάδα εργασίας για την προστασία των φυσικών προσώπων έναντι της επεξεργασίας δεδοµένων προσωπικού χαρακτήρα. Σύσταση 1/99

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

XAMPP Apache MySQL PHP javascript xampp

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Transcript:

Το πρωτόκολλο ΗΤΤΡ (HyperText Transfer Protocol) Το όχηµα για την επικοινωνία πελάτηεξυπηρετητή στο Web Χρήστος Ηλιούδης, Πέτρος Λάµψας & Σπύρος Λάλης, 2003

Στόχοι της Ενότητας Η παρουσίαση των χαρακτηριστικών του πρωτοκόλλου ΗΤΤΡ Η παρουσίαση του τρόπου µε τον οποίο επικοινωνούν πελάτης-εξυπηρετητής µε χρήση του πρωτοκόλλου ΗΤΤΡ Κατανόηση του ΗΤΤΡ ως τρόπου δόµησης της επικοινωνίας και απόδοσης νοήµατος στα δεδοµένα που µεταφέρονται, σε αντίθεση µε το λογισµικό του Web που επιφορτίζεται µε την προσπέλαση και απεικόνιση περιεχοµένου 2

Εισαγωγή Το ΗΤΤΡ ορίζει τα αιτήµατα που ένας πελάτης µπορεί να στείλει σε έναν εξυπηρετητή και τις αντίστοιχες αποκρίσεις του εξυπηρετητή Κάθε αίτηµα περιέχει ένα URL (=συµβολοσειρά) που προσδιορίζει µια συνιστώσα (Web component) ή ένα στατικό αντικείµενο (π.χ. σελίδα HTML ή αρχείο εικόνας) Η προσέγγιση αίτηµα/απόκριση (request/response) σηµαίνει ότι ο εξυπηρετητής τρέχει συνεχώς περιµένοντας να δεχθεί αίτηµα για εξυπηρέτηση από κάποιο πελάτη 3

Οι λειτουργίες του ΗΤΤΡ Όλη την ώρα ο εξυπηρετητής αδρανεί αναµένοντας εισερχόµενες αιτήσεις στη θύρα 80 Όταν δεχθεί αιτήµατα δηµιουργεί διεργασίες / νήµατα για την εξυπηρέτησή τους Για να δούµε όµως µε µεγαλύτερη λεπτοµέρεια τις λειτουργίες του ΗΤΤΡ 4

Χαρακτηριστικά του ΗΤΤΡ (Ι) Το ΗΤΤΡ είναι ένα αµνήµων (stateless) πρωτόκολλο αίτησης / απόκρισης (request / response protocol) Αυτό σηµαίνει ότι δε µεταφέρεται πληροφορία από τη µια αίτηση στην επόµενη αίτηση του ίδιου πελάτη Αυτό διευκολύνει τη δουλειά ενός web server διότι µπορεί να «ξεχνάει» οτιδήποτε αφορά µια αίτηση µόλις την ικανοποιήσει Είναι ιδιαίτερα βολικό όταν υπάρχουν εκατοµµύρια αιτήσεις. Είναι ένας από τους λόγους για τους οποίους το web κλιµακώνει σε πολύ µεγάλους όγκους πληροφορίας 5

Χαρακτηριστικά του ΗΤΤΡ (ΙΙ) Η απλότητα του ΗΤΤΡ το καθιστά ιδανικό για τη δηµοσίευση στατικών σελίδων web λόγω του ότι οι σελίδες αυτές δεν (πρέπει να) έχουν πολλές διαφορετικές εικόνες ή άλλα τµήµατα τύπων δεδοµένων Η αµνήµων φύση του ΗΤΤΡ επιβραδύνει την παράδοση δεδοµένων µε πολλά τµήµατα. Αυτό συµβαίνει διότι µια σελίδα µε 20 εικόνες, απαιτεί 21 διαφορετικές αιτήσεις και αποκρίσεις (µια για τη σελίδα και 20 για τις εικόνες) 6

Χαρακτηριστικά του ΗΤΤΡ (ΙΙΙ) Στη γενική περίπτωση ο πελάτης κάνει αιτήσεις και ο server απαντά Το HTTP δοµεί την επικοινωνία σχετικά µε τη µεταφορά και τη «µετάφραση» των αρχείων Αυτό επιτρέπει στο λογισµικό του web να ασχοληθεί µε αυτό που µπορεί να κάνει καλύτερα: πρόσβαση και απεικόνιση περιεχοµένου Κάθε αίτηση / απόκριση απαιτεί µια διαφορετική σύνδεση TCP/IP, κάτι που αυξάνει την κίνηση στο δίκτυο και επιβραδύνει την παράδοση του κειµένου 7

Χαρακτηριστικά του ΗΤΤΡ (ΙV) Η αµνήµων φύση του ΗΤΤΡ καθιστά δυσκολότερη την ανάπτυξη εφαρµογών που εξαρτώνται από σειρά αιτήσεων και αποκρίσεων Για παράδειγµα, η φόρµα παραγγελίας του Amazon που αποτελείται από πολλές σελίδες, απαιτεί ειδική επεξεργασία στον πελάτη και τον εξυπηρετητή προκειµένου να τηρείται η κατάσταση κάθε τµήµατος της φόρµας 8

Το Web: µέσο και µήνυµα Το Web περιγράφεται ως ένα καθολικό, αλληλεπιδραστικό, δυναµικό, κατανεµηµένο πληροφοριακό σύστηµα υπερµέσων, που τρέχει πάνω από το Internet Πρόκειται για την πρώτη γενιά µιας νέας τάξης κατανεµηµένων συστηµάτων, η οποία θα συνεχίσει να εξελίσσεται µε γοργούς ρυθµούς τα επόµενα χρόνια Στη συνέχεια θα περιγράψουµε αναλυτικά την αρχιτεκτονική του πρωτοκόλλου ΗΤΤΡ 9

Αρχιτεκτονική του ΗΤΤΡ (Ι) Το ΗΤΤΡ προσδιορίζει τους κανόνες για τη «διατύπωση» των αιτήσεων και αποκρίσεων Η αίτηση GET στο HTTP είναι ο απλούστερος τρόπος δηµιουργίας συνόδου µεταφοράς πληροφορίας Στην απλούστερή της εκδοχή η αίτηση GET απλά προσδιορίζει ένα αρχείο που θα µεταφερθεί (π.χ. GET /jcb/home.html HTTP/1.0). εν απαιτείται ο προσδιορισµός σύνδεσης, λόγω του ότι το TCP χειρίζεται τη δικτυακή σύνδεση για χάρη του ΗΤΤΡ 10

Αρχιτεκτονική του ΗΤΤΡ (ΙΙ) Η τυπική αρχιτεκτονική του Web είναι σχεδιασµένη έτσι ώστε ένας πελάτης να µπορεί να αλληλεπιδράσει µε έναν εξυπηρετητή µέσω ενός δικτύου TCP/IP Πελάτης και εξυπηρετητής επικοινωνούν χρησιµοποιώντας το πρωτόκολλο HyperText Transfer Protocol (HTTP) To TCP/IP χειρίζεται τις λεπτοµέρειες µεταφοράς, όπως το να διασφαλίσει ότι τα πακέτα δεδοµένων θα φτάσουν σωστά στον προορισµό τους 11

Λειτουργία του ΗΤΤΡ Μόλις λάβει µια αίτηση εντοπίζει τη συνιστώσα που περιγράφεται από το URL και την αντιγράφει στη σύνδεση δικτύου, µέσω της οποίας το TCP θα τη µεταφέρει στο browser Όταν ο πελάτης λάβει τη σελίδα για την οποία είχε κάνει αίτηση, διερµηνεύει την HTML και τον υπόλοιπο ενσωµατωµένο κώδικα και απεικονίζει το αρχείο (σελίδα), όσο καλύτερα µπορεί, στον υπολογιστή του πελάτη Ας υποθέσουµε ότι κάποιος χρήστης πληκτρολογεί στον πελάτη που διαθέτει: www.sun.com/httptest.html 12

ηµιουργία Σύνδεσης TCP Σύµφωνα και µε όσα είχαµε πει σε προηγούµενη ενότητα πρέπει να δηµιουργηθεί µια σύνδεση µε τη www.sun.com Αυτή είναι δουλειά του TCP. Αν δεν έχει γίνει πρόσφατα αναφορά σε αυτή τη διεύθυνση θα πρέπει να ρωτηθεί ο εξυπηρετητής ονοµάτων της περιοχής του πελάτη Πρώτον, το ΗΤΤΡ απαιτεί µια αξιόπιστη σύνδεση µεταξύ του πελάτη και του εξυπηρετητή (άρα TCP) εύτερον, ο πελάτης σας στέλνει µια αίτηση στον εξυπηρετητή web της SUN που δείχνει κάπως έτσι: 13

Αποστολή Μηνύµατος Αίτησης (Ι) Πρόκειται για την αίτηση GET που λέει στον εξυπηρετητή το αρχείο που πρέπει να ανακτηθεί: GET httptest.html HTTP/1.0 Στη συνέχεια ενηµερώνει τον εξυπηρετητή να µη στείλει το κείµενο αν δεν έχει τροποποιηθεί πρόσφατα: If-modified-since: Wed, 19 Jul, 1998, 12:59:59 GMT Ο πελάτης αυτό-προσδιορίζεται ως µια έκδοση του Netscape Navigator που τρέχει σε Solaris 7: User-agent: Mozilla 4.05 for Sol 7 14

Αποστολή Μηνύµατος Αίτησης (ΙΙ) Αυτή η οµάδα των εντολών Accept λέει στον εξυπηρετητή τι είδους µορφές αρχείων µπορεί να χειριστεί ο πελάτης: Accept: text/plain Accept: text/html Accept: image/gif Accept: image/jpeg Τρίτον, υποθέτοντας ότι όλα δουλεύουν σωστά, ο ΗΤΤΡ server της SUN στέλνει απόκριση στον πελάτη σας, η οποία µοιάζει µε την παρακάτω: 15

Απόκριση Εξυπηρετητή (Ι) Αυτή είναι η τυπική απόκριση του εξυπηρετητή ΗΤΤΡ όταν όλα δουλεύουν σωστά: HTTP/1.0 Status 200 Document follows Αυτο-προσδιορίζει το είδος και την έκδοσή του: Server: NCSA/1.5 Παρέχει την ηµεροµηνία και ώρα της απόκρισης: Date: Tue, 20 Jul, 1998 14:00:00 GMT 16

Απόκριση εξυπηρετητή (ΙΙ) O εξυπηρετητής λέει στον πελάτη τι είδους κείµενο να περιµένει: Content-type: text/html Προσδιορίζει το µέγεθος του κειµένου: Content-length: 313 Προσδιορίζει το είδος της κωδικοποίησης που υπάρχει για αυτό το κείµενο: Content-encoding: none 17

Απόκριση Εξυπηρετητή (ΙΙΙ) Η ακόλουθη πρόταση λέει στον πελάτη πότε τροποποιήθηκε για τελευταία φορά το αρχείο στον εξυπηρετητή: Last-modified: Thu, 20 Jul 1998 00:00:00 GMT Η κενή γραµµή που ακολουθεί τις παραπάνω δηλώσεις είναι σηµαντική για το διαχωρισµό της επικεφαλίδας του HTTP (όλες τις παραπάνω γραµµές) από το ίδιο το κείµενο (όλες οι γραµµές που ακολουθούν) 18

Απόκριση Εξυπηρετητή (ΙV) Στη συνέχεια αποστέλλεται στον πελάτη το κείµενο HTML: <html><body><h2>hello HTTP</h2> <center><p>this page has been transmitted to you from the Sun web site in Broomfield, Colorado, USA. <p>the page makes reference to one image and not much else. It's solely for teaching about HTTP. <p><img src="content:/images/sun-logo.gif" alt="sunlogo"> </center></body></html> 19

ιερµηνεία και Εµφάνιση εδοµένων Σελίδας Τέταρτον, µόλις η απόκριση του ΗΤΤΡ ληφθεί πλήρως από τον browser, το TCP κλείνει τη σύνδεση Τη στιγµή αυτή ο εξυπηρετητής θεωρεί ότι τελείωσε µε τη σελίδα και συνεχίζει να ακούει στη θύρα 80 για αιτήσεις, «ξεχνώντας» οτιδήποτε αφορούσε την προηγούµενη σύνδεση Στο βήµα 5, ο browser «πιάνει δουλειά» αναλύοντας και διερµηνεύοντας την εισερχόµενη σελίδα HTML 20

Εργασία του πελάτη Καθαρίζει το παράθυρο κειµένου και ανιχνεύει την ετικέτα κειµένου <h1> προκειµένου να την εµφανίσει µε τον κατάλληλο τρόπο Ανιχνεύει την ετικέτα παραγράφου <p> και γνωρίζει που τελειώνει η προηγούµενη παράγραφος και αρχίζει η επόµενη Όταν ανιχνεύσει την ετικέτα <img> αµέσως ξεκινάει το επόµενο βήµα 21

Μεταφορά Ενσωµατωµένων Αρχείων Έκτο και σηµαντικότερο, υποθέτοντας ότι η αυτόµατη φόρτωση εικόνων είναι ενεργοποιηµένη, ο πελάτης ανιχνεύει την ανάγκη για µεταφορά και του αρχείου που περιγράφεται στην ετικέτα img Ο πελάτης καλεί το TCP για να δηµιουργήσει µια νέα σύνδεση Μόλις εγκατασταθεί η σύνδεση, ο πελάτης στέλνει µια δεύτερη αίτηση GET στον εξυπηρετητή ΗΤΤΡ της SUN (παρόµοια µε την πρώτη) 22

Αποστολή Μηνύµατος Αίτησης Η αίτηση GET ενηµερώνει για το αρχείο που πρέπει να ανακτηθεί: GET images/sun-logo.gif HTTP/1.0 Ενηµερώνει να µην σταλεί το αρχείο αν δεν έχει τροποποιηθεί πρόσφατα: If-modified-since: Mon, 11 Jun, 1998, 12:59:59 GMT Ο πελάτης είναι ο Netscape Navigator που τρέχει σε Windows 95: User-agent: Mozilla 4.04 for Win 95 Η οµάδα των εντολών accept λέει στον εξυπηρετητή τι µορφής αρχεία µπορεί να χειριστεί ο πελάτης: Accept: text/plain Accept: text/html Accept: image/gif Accept: image/jpeg 23

Μεταφορά της Εικόνας Αυτή η εντολή GET είναι παρόµοια µε την πρώτη αλλά για ένα διαφορετικό αρχείο (URL) Αυτή η εντολή ζητάει την εικόνα που είναι ενσωµατωµένη στη σελίδα Υποθέτοντας ότι η εικόνα αυτή υπάρχει, ο εξυπηρετητής θα απαντήσει µε τρόπο µε αυτόν που απάντησε στο βήµα 3 παραπάνω Η µόνη διαφορά είναι ότι η επικεφαλίδα Content-type θα δείχνει τον κατάλληλο τύπο ΜΙΜΕ για το αρχείο 24

Αρχιτεκτονική του ΗΤΤΡ (ΙΙΙ) 25

Τύποι ΜΙΜΕ (I) Το ΜΙΜΕ (Multipurpose Internet Mail Extensions) είναι µια τυποποιηµένη µέθοδος για την οργάνωση διαφόρων τύπων αρχείων Όταν ένας πελάτης ανακτά ένα αρχείο ο εξυπηρετητής παρέχει τον τύπο ΜΙΜΕ του αρχείου Ο πελάτης χρησιµοποιεί τον τύπου ΜΙΜΕ για να διαπιστώσει αν υποστηρίζεται από τις ενσωµατωµένες δυνατότητες του προγράµµατος, ή, αν όχι, αν υπάρχει η κατάλληλη εφαρµογή υποστήριξης (helper application) για την ανάγνωση του αρχείου 26

Τύποι ΜΙΜΕ (II) Το πρωτόκολλο ΜΙΜΕ χρησιµοποιείται στο Internet για τη µετάδοση δεδοµένων διαφόρων τύπων Υλοποιεί µια αντιστοίχιση µεταξύ της µορφής του περιεχοµένου ενός κειµένου και της µορφής της αναπαράστασης του κειµένου στον υπολογιστή Οι εφαρµογές που χρησιµοποιούν το ΜΙΜΕ µπορούν να χρησιµοποιήσουν τον τύπο του λογισµικού που είναι απαραίτητο για τη µετάφραση των περιεχοµένων ενός κειµένου που µεταδίδεται 27

H Εντολή POST του ΗΤΤΡ Χρησιµοποιείται εξίσου συχνά µε την GET για την αποστολή δεδοµένων σε εξυπηρετητή Οι φόρµες είναι ο πιο κοινός τύπος δεδοµένων που αποστέλλονται µε την POST Στην POST τα δεδοµένα ακολουθούν την επικεφαλίδα της αίτησης Στην επικεφαλίδα της αίτησης υπάρχει το είδος του περιεχοµένου και το µέγεθος των δεδοµένων που αποστέλλονται 28

GET εναντίον POST Τι εξυπηρετεί η ύπαρξη δύο εναλλακτικών λύσεων στην αποστολή δεδοµένων στο web server; Η εντολή GET απλοποιεί τη δουλειά του server, βάζει όµως όριο στο µέγεθος των δεδοµένων που στέλνονται, σε αντίθεση µε την POST που δε βάζει όριο Στην περίπτωση υποβολής στοιχείων φόρµας µε τη GET µπορεί κανείς να κάνει bookmark το αποτέλεσµα, διότι το bookmark θα περιέχει τις µεταβλητές της φόρµας που είναι µέρος του URL (χωρίζονται µε το &) 29

Ολοκλήρωση της µεταφοράς των στοιχείων της σελίδας Τέλος ο browser εµφανίζει το µήνυµα Document done στη ράβδο κατάστασης και εµφανίζει τη σελίδα, µόλις ολοκληρωθούν τα ακόλουθα βήµατα: Η σελίδα έχει πλήρως αναλυθεί (parsed) Η HTML έχει απεικονισθεί και έχουν εµφανιστεί όλες οι εικόνες Εσωτερικά τµήµατα άλλων µέσων έχουν εµφανιστεί στην οθόνη Η σύνδεση TCP/IP κλείσει 30

Τυπικό Σενάριο ΗΤΤΡ (Ι) Σύνδεση µε τον εξυπηρετητή DNS της περιοχής Μετατροπή του ονόµατος σε διεύθυνση ΙΡ µέσω της Υπηρεσίας Ονοµάτων Περιοχής ηµιουργία σύνδεσης TCP/IP µε τον αποµακρυσµένο κόµβο Κατάτµηση του µηνύµατος σε πακέτα ροµολόγηση των πακέτων µέσω του ιαδικτύου Αίτηση HTTP GET 31

Τυπικό Σενάριο ΗΤΤΡ (ΙΙ) Απόκριση του HTTP Το TCP/IP ρυθµίζει τα θέµατα ελέγχου ροής και ελέγχου λαθών Ανάλυση της σελίδας στον πελάτη Επιπρόσθετες αιτήσεις HTTP GET εφόσον αυτό είναι απαραίτητο Επιπρόσθετες αποκρίσεις του HTTP στις αιτήσεις που δέχθηκε 32

Persistent HTTP (HTTP 1.1) Στην έκδοση 1.1 του ΗΤΤΡ, αντί να χρησιµοποιείται µια σύνδεση TCP για κάθε µεταφορά, υιοθετήθηκε η προσέγγιση της παραµένουσας ή µόνιµης σύνδεσης (persistent connection) Η ίδια σύνδεση παραµένει κατά τη διάρκεια πολλών αιτήσεων και αποκρίσεων (pipelining of requests) Πλεονέκτηµα: λιγότερος φόρτος λόγω περιορισµού του πλήθους των συνδέσεων και µειονέκτηµα η ανάγκη για προσδιορισµό αρχής και τέλους κάθε στοιχείου 33

34

Αιτήσεις στο ΗΤΤΡ (Ι) Μια αίτηση ΗΤΤΡ αποτελείται από µια µέθοδο αίτησης, ένα URL, πεδία επικεφαλίδας και ένα σώµα αίτησης. Το ΗΤΤΡ 1.1 ορίζει τις ακόλουθες µεθόδους αίτησης: GET Ανάκτηση του πόρου που προσδιορίζεται από το URL HEAD Επιστρέφει τις επικεφαλίδες που προσδιορίζονται από το URL (όµοια µε τη GET αλλά χωρίς τα δεδοµένα) POST Αποστολή εδοµένων απεριόριστου µήκους στο web server PUT Αποθήκευση πόρου κάτω από το URL 35

Αιτήσεις στο ΗΤΤΡ (ΙΙ) DELETE Αποµάκρυνση του πόρου που προσδιορίζεται από το URL OPTIONS Επιστρέφει τις µεθόδους ΗΤΤΡ που υποστηρίζει ο εξυπηρετητής TRACE Επιστροφή των πεδίων επικεφαλίδας που αποστέλλονται µε την αίτηση TRACE Η έκδοση 1.0 του ΗΤΤΡ περιείχε µόνο τις µεθόδους GET, POST και HEAD 36

Αποκρίσεις στο HTTP (Ι) Μια απόκριση στο ΗΤΤΡ περιέχει ένα κωδικό αποτελέσµατος, πεδία επικεφαλίδας και ένα σώµα Το πρωτόκολλο ΗΤΤΡ περιµένει τον κωδικό αποτελέσµατος και όλα τα πεδία επικεφαλίδας να επιστραφούν πριν από οποιοδήποτε σώµα Η γραµµή κατάστασης καταγράφει την έκδοση του πρωτοκόλλου, έναν αριθµητικό κωδικό κατάστασης και µια φράση κειµένου για την κατάσταση Ο κωδικός κατάστασης έχει τρία δεκαδικά ψηφία 37

Αποκρίσεις στο ΗΤΤΡ (ΙΙ) Ορισµένοι συνηθισµένοι κωδικοί κατάστασης είναι: 404 ο ζητούµενος πόρος δεν είναι διαθέσιµος 401 απαιτείται έλεγχος πρόσβασης 301 ο πόρος έχει ένα νέο URL που θα πρέπει να χρησιµοποιηθεί. Το νέο URL επιστρέφεται στο πεδίο Location της απόκρισης 500 εσωτερικό λάθος στον εξυπηρετητή ΗΤΤΡ 503 εξυπηρετητής προσωρινά ανίκανος να ικανοποιήσει αίτηση λόγω υπερφόρτωσης 38

Υποστήριξη Ενδιαµέσων (Proxies) ιαµορφώνονται όλοι οι πελάτες ενός δικτύου να στέλνουν τις αιτήσεις τους στον ενδιάµεσο εξυπηρετητή Την πρώτη φορά που κάποιος χρήστης του δικτύου προσπελάσει µια σελίδα, αυτή ζητείται, εκ µέρους του χρήστη, από τον εξυπηρετητή που την κατέχει µέσω του ενδιάµεσου εξυπηρετητή, αποθηκεύεται τοπικά στον ενδιάµεσο εξυπηρετητή (cache) και στη συνέχεια µεταφέρεται στον πελάτη 39

Υποστήριξη Ενδιαµέσων (ΙΙ) Στην επόµενη προσπέλαση στην ίδια σελίδα, η σελίδα αυτή θα µεταφερθεί από την προσωρινή µνήµη του ενδιάµεσου εξυπηρετητή στον πελάτη (εφόσον δεν έχει αλλάξει), αυξάνοντας έτσι την απόδοση, µειώνοντας το χρόνο αναµονής και την κίνηση στο ιαδίκτυο Σε πολλές περιπτώσεις δηµιουργείται ιεραρχία από proxy servers οι οποίοι «διαδίδουν» προς τις µεγαλύτερες βαθµίδες της ιεραρχίας τις αιτήσεις των χρηστών περιµένοντας κάποιος από την ιεραρχία να κατέχει τη σελίδα 40

HTTP Cookies (Ι) Πρόκειται για αξιοποίηση της επεκτασιµότητας του ΗΤΤΡ για να επιτρέψει σε προγράµµατα που τρέχουν στο server (π.χ. προγράµµατα CGI) να αποθηκεύουν και να ανακτούν πληροφορία στον πελάτη Αυτό επιτρέπει την τήρηση πληροφοριών κατάστασης σχετικών µε την εφαρµογή στον πελάτη, έτσι ώστε οι προσπελάσεις να φαίνονται ότι σχετίζονται µε τη σύνοδο µιας εφαρµογής Ορίζουν επιπλέον πληροφορίες επικεφαλίδας µέσω των οποίων οι servers προσαρτούν πληροφορίες κατάστασης 41

HTTP Cookies (ΙΙ) Η πληροφορία των cookies σχετίζεται µε συγκεκριµένα URL (για τα οποία είναι έγκυρη) Όταν κληθεί αυτό το URL ο πελάτης περιλαµβάνει την πληροφορία του cookie στην αίτησή του Τα cookies έχουν και αυτά ηµεροµηνία λήξεως, µετά την οποία δεν αποστέλλονται µε την αίτηση του πελάτη Η ασφαλής αποστολή τους γίνεται όπως και στις περιπτώσεις των «κανονικών» δεδοµένων (π.χ. µε χρήση του HTTPS και του SSL) 42

ΗΤΤΡS Ασφαλές ΗΤΤΡ Ο πελάτης αναγνωρίζει το https ως µια αίτηση χρήσης ασφαλών στοµίων (sockets) για το πέρασµα των δεδοµένων Το SSL (Secure Sockets Layer) επιτρέπει την αποστολή κρυπτογραφηµένων δεδοµένων µεταξύ πελάτηεξυπηρετητή Πλεονέκτηµα αποτελεί το γεγονός ότι το ΗΤΤΡ παραµένει το ίδιο και αλλάζει το επίπεδο µεταφοράς 43

Αρχιτεκτονική του Browser Χρήστος Ηλιούδης, Πέτρος Λάµψας & Σπύρος Λάλης, 2003

O Πελάτης της Υπηρεσίας ΗΤΤΡ (I) Η τυποποίηση του HTML περιγράφει τις απαιτήσεις για το σχεδιασµό του πελάτη της υπηρεσίας (browser) Όπως µε όλες τις τυποποιήσεις, κάθε εµπορική υλοποίηση δεν ικανοποιεί πλήρως την τυποποίηση και την επεκτείνει σε ιδιόκτητες περιοχές Για να αποφευχθεί να γίνει η τυποποίηση περιοριστική ή συνονθύλευµα, η επεκτασιµότητα επιτυγχάνεται µε την υλοποίηση µιας τυποποίησης για επικοινωνία µε εξωτερικά προγράµµατα (components) 45

O Πελάτης της Υπηρεσίας ΗΤΤΡ (IΙ) Υπάρχουν διάφορες ονοµασίες για αυτού του είδους τις προσθήκες (helper applications, plug-ins, Xtras, link libraries, cartridges, components, objects, classes, κ.λπ.) Η έννοια πίσω από όλα αυτά είναι απλή: όπου υπάρχει µια τυποποίηση, τρίτοι κατασκευαστές µπορούν να παρέχουν «εξαρτήµατα» που προσαρµόζονται εύκολα στην υλοποίηση της τυποποίησης του κατασκευαστή 46

Γενική Αρχιτεκτονική ενός Browser 47

48

Plug-ins Πρόκειται για τµήµατα προγραµµάτων που επεκτείνουν τις δυνατότητες του browser Το plug-in ΑΡΙ επιτρέπει σε άλλους κατασκευαστές να επεκτείνουν το browser µε έµφυτη υποστήριξη για νέους τύπους δεδοµένων Πρόκειται για δυναµικά τµήµατα κώδικα, που συµπληρώνουν αρχιτεκτονικές όπως το OLE και γλώσσες προγραµµατισµού ανεξάρτητες από πλατφόρµα, όπως είναι η Java 49

Το Plug-in API Παρέχει οµοιόµορφη υποστήριξη για νέους τύπους δεδοµένων στους χρήστες ενός browser Παρέχει τη µέγιστη δυνατή ευελιξία για τη συγγραφή plug-ins Είναι λειτουργικά ισοδύναµο σε όλες τις πλατφόρµες Μπορεί να αλληλεπιδράσει µε κάποιο παράθυρο που αποτελεί µέρος της ιεραρχίας του browser Μπορεί να ανακτήσει δεδοµένα από το δίκτυο µέσω URL και να δηµιουργήσει ή να καταναλώσει δεδοµένα 50

Βοηθητικές Εφαρµογές εναντίον Plug-ins (Ι) Οι βοηθητικές εφαρµογές (helper applications) τρέχουν ως ξεχωριστά προγράµµατα, ενώ τα plug-ins λειτουργούν µέσα από τον εξυπηρετητή Πρόκειται βασικά για µια εφαρµογή η οποία που καταλαβαίνει και µεταφράζει αρχεία που δεν µπορεί να χειριστεί ο πελάτης Τα plug-ins λειτουργούν ουσιαστικά ως επεκτάσεις στον εκάστοτε πελάτη και χειρίζονται συγκεκριµένους τύπους δεδοµένων ΜΙΜΕ και επεκτάσεις αρχείων 51

Βοηθητικές Εφαρµογές εναντίον Plug-ins (ΙΙ) Με τις βοηθητικές εφαρµογές µπορεί να γίνει multitasking µεταξύ µιας τέτοιας εφαρµογής και του παράθυρου του πελάτη Τα plug-ins είναι δυναµικά κοµµάτια κώδικα και εξαρτώνται από την πλατφόρµα (platform specific) H ολοκλήρωση plug-ins είναι µια διαδικασία διαφανής στους χρήστες, ενώ δεν απαιτείται διαµόρφωση των plugins 52

53

Αρχιτεκτονική του Browser (I) Σε γενικές γραµµές ένας browser έχει περισσότερο πολύπλοκη αρχιτεκτονική από ένα server Ο browser χειρίζεται τις λεπτοµέρειες πρόσβασης και απεικόνισης των σελίδων Αποτελείται από πολλά συνεργαζόµενα κοµµάτια λογισµικού: πελάτες, διερµηνευτές και έναν ελεγκτή που τα διαχειρίζεται Ο πελάτης τηρεί συσχετισµούς θέσεων στην οθόνη και ενεργών τµηµάτων στο κείµενο HTML 54

Αρχιτεκτονική του Browser (II) 55

Προαιρετικοί Πελάτες Ένας browser µπορεί να περιέχει κοµµάτια λογισµικού για την υλοποίηση επιπλέον λειτουργιών (FTP, E-mail) Χωρίς ο χρήστης σαφώς να καλέσει το λογισµικό αυτό, ο browser καλεί την υπηρεσία αυτόµατα, κρύβοντας τις λεπτοµέρειες από το χρήστη Το τµήµα του URL που αναφέρεται στο πρωτόκολλο χρησιµοποιείται για την επιλογή του πελάτη που θα αναλάβει την ανάκτηση του αρχείου 56

Τοπική Αποθήκευση (Caching) στους Browsers Το Web έχει διαφορετικό µοντέλο κίνησης πληροφορίας από τις υπόλοιπες εφαρµογές Οι browsers χρησιµοποιούν cache για την αύξηση της απόδοσης πρόσβασης σε σελίδες του web Αντίγραφο κάθε σελίδας που ανακτάται τοποθετείται σε µια cache στον τοπικό δίσκο και ο browser απευθύνεται στον κάτοχο της σελίδας µόνο αν δεν την βρει στο δίσκο Υπέρ: η ταχύτατη ανάκτηση. Κατά :η απώλεια χώρου στο δίσκο, η µεταβλητότητα στις επισκέψεις σε σελίδες 57

Υποστήριξη του ΗΤΤΡ για Τοπική Αποθήκευση Ο εξυπηρετητής µπορεί να ορίσει χρόνο ζωής της σελίδας στην cache, ενώ ο πελάτης µπορεί να ζητήσει για µια αίτησή του να µη χρησιµοποιηθεί η cache Η λειτουργία HEAD του ΗΤΤΡ βοηθάει στη διαχείριση της cache, διότι µέσω αυτής µπορούµε να ελέγξουµε την εγκυρότητα της έκδοσης της σελίδας που έχει η cache Ο πελάτης στέλνει µια αίτηση HEAD για τη σελίδα που επιθυµεί και αν η απάντηση δείξει ότι το αντίγραφο της cache είναι έγκυρο χρησιµοποιείται 58