http - web services
TRANSCRIPT
HyperText Transfer Protocol
Βασίλειος Κοµιανός
Ιόνιο Πανεπιστήµιο
Μάρτιος 2012
wwwtwitter linkedin
academia europeana
youtube
stumbleupon
yahoo
webmailgoogle
wikipedia wordpress
blogspot
Προϊστορία
• Vannevar Bush: MEMEX, 1945 (θεωρητική πρόταση).
• Ted Nelson: hypertext, 1965 (εµφάνιση του όρου).
• Douglas Engelbart: NLS, 1968.
Πιο πρόσφατα
1990
• Tim Berners Lee
• Έψαχνε ένα τρόπο να οργανώσει τη πληροφορία στο δίκτυο.
• Hypertext + http + Internet = World Wide Web
WEB
∆οµείται από έγγραφα, κυρίως HTML, τα οποία αρχικά περιείχαν:
• άλλα έγγραφα,
• συνδέσεις προς άλλα έγγραφα – αρχεία
• πλέον υποστηρίζονται και άλλου τύπου αρχεία,
εικόνα – βίντεο κτλ.
Google 1998:
HTTP, η εξέλιξη
•1991 http 0.9
•1996 http 1.0
•1999 έως σήµερα http 1.1
Σε κάθε νεώτερη έκδοση αναφέρεται ότι θα πρέπει οι υλοποιήσεις να τηρούν συµβατότητα µε τις παλαιότερες εκδόσεις.
HTTP
Επίπεδο Εφαρµογής
Μεταφοράς
∆ικτύου
Ζεύξης δεδοµένων
Φυσικό µέσο
HTTP
Client
Επίπεδο Εφαρµογής
Μεταφοράς
∆ικτύου
Ζεύξης δεδοµένων
Φυσικό µέσο
HTTP
Server
TCPTCP
request
response
∆υο λόγια για το TCP
• Transmission Control Protocol –πρωτόκολλο ελέγχου µεταφοράς.
• Αξιόπιστη µετάδοση.
• Με συνδέσεις.
Ανταλλαγή µηνυµάτων στο http
Η επικοινωνία µεταξύ client και server γίνεται µε ειδικά µηνύµατα στα οποία εσωκλείεται µια αίτηση (request)ή µια απάντηση (response)και η µορφή των οποίων είναι αυστηρά ορισµένη από το πρωτόκολλο.
Όροι που θα δούµε παρακάτω:• request• response• resource• client• user agent• server
HTTP επικοινωνία
Ξεκινάει µε πρωτοβουλία του client, εκκινεί µια TCP σύνδεση µε τον server και εν συνεχεία αποστέλλεισυνήθως αίτηση για λήψη αντικειµένου (resource).
Για παράδειγµα: GET /index.html HTTP/1.1
Ο client µπορεί επίσης να προωθήσει δεδοµένα στον server κάνοντας χρήση της µεθόδου POST.
HTTP επικοινωνία
O server αποκρίνεται σε µια αίτηση συνθέτοντας ένα µήνυµα το οποίο περιλαµβάνει πληροφορίες σχετικά µε την αίτηση που δέχτηκε και ενδεχοµένως να εσωκλείει και κάποιο αντικείµενο αν του ζητήθηκε.
Οποιοδήποτε αντικείµενο µεταφέρεται µέσω http µηνυµάτων µε µια σχετική ένδειξη ώστε ο client να προβεί στους απαραίτητους χειρισµούς.
Σε αυτό το σηµείο µπορούµε να κατανοήσουµε και τον λόγο της µακροβιότητας του πρωτοκόλλου παρόλο που από την τελευταία του έκδοση o ιστός έχει αλλάξει εντυπωσιακά.
HTTP 0.9 - 1.0TCP Non-Persistent Connections
Web client Web server
request
TCP connection no 1
response
HTTP 0.9 - 1.0TCP Non-Persistent Connections
Web client Web server
request
TCP connection no 1
response
Η σύνδεση ολοκληρώνει την επικοινωνία και τερµατίζεται.
HTTP 0.9 - 1.0TCP Non-Persistent Connections
Web client Web server
request
TCP connection no 1
response
request
TCP connection no 2
response
Νέα σύνδεση για κάθε αντικείµενο.
HTTP 0.9 - 1.0TCP Non-Persistent Connections
Web client Web server
request
TCP connection no 1
response
request
TCP connection no 2
response
HTTP 1.1TCP Persistent Connections
Web client Web server
request
TCP connection
response
request
response
request
response
request
response
Πολλαπλά αντικείµενα διέρχονται από µια σύνδεση.
HTTP 1.1TCP Persistent Connections
Web client Web server
request
TCP connection
response
request
response
request
response
request
response
Με τη λήξη της επικοινωνίας τερµατίζεται η σύνδεση.
HTTP 1.1TCP Persistent Connections and Pipelining
Web client Web server
requestTCP connection
request
response
request
response
response
Οι αιτήσεις στέλνονται παράλληλα χωρίς να χρειάζεται να περιµένει για απόκριση:• Βελτίωση απόδοσης,• Καλύτερη χρήση του TCP.
Proxies & Caching
Web client
Web serverWeb Cache
-Proxy Server
request requestresponseresponse
Ο Proxy αποθηκεύει τα αντικείµενα για τα οποία µεσολαβεί ώστε αν ξαναζητηθούν να σταλούν άµεσα. Caching όµως µπορεί να κάνει και ο client,στην περίπτωση αυτή το αίτηµα του έχει τη συνθήκη:If-modified-since: Friday, 23 Mar 2012 12:10:36αν δεν έχει συµβεί τροποποίηση ο server (proxy ή web) δεν στέλνει τοπεριεχόµενο αλλά µόνο ένα µήνυµα που ενηµερώνει ότι δεν συνέβητροποποίηση:HTTP/1.1 304 Not Modified
Proxies & Caching
Web client1 Web server
Web Cache-
Proxy Server
request requestresponseresponse
Αν ο client 2 ζητήσει από τον proxy το ίδιο αντικείµενο µε αυτό που ζήτησε ο client 1προηγουµένως, ο proxy ελέγχει στον server της πηγήςγια τυχόν τροποποίηση, αν δεν έχει συµβεί στέλνει το αποθηκευµένοαντίγραφο που έχει, σε αντίθετη περίπτωση λαµβάνει και προωθεί το νέο αντικείµενο.
Web client2
request
response
Μέρος 2ο - Web Services
Web Services είναι µια τεχνολογία η οποία επιτρέπει την επικοινωνία και την αλληλεπίδραση µεταξύ διαφορετικών εφαρµογών, ανεξαρτήτως πλατφόρµας ή γλώσσας προγραµµατισµού.
Web Services
Στην πραγµατικότητα πρόκειται για ένα σύνολο τεχνολογιών. Οι τεχνολογίες από τις οποίες αποτελείται είναι:
• HTTP
• XML
• SOAP
• WSDL
• UDDI
XML
• Πρόκειται για µια γλώσσα περιγραφής η οποία δεν εξαρτάται από την πλατφόρµα.
• ∆ηµιουργήθηκε µε σκοπό να διευκολύνει την ανταλλαγή δεδοµένων µεταξύ εφαρµογών που επικοινωνούν µέσω διαδικτύου.
• Ένα έγγραφο XML περιέχει τα δεδοµένα αλλά και την απαραίτητη περιγραφή τους.
SOAP
Είναι ένα πρωτόκολλο ανταλλαγής δεδοµένων (Simple Object Access Protocol) που χρησιµοποιείται σε κατανεµηµένα συστήµατα και στηρίζεται στην τεχνολογία XML .
Τα µηνύµατα SOAP µεταφέρονται µέσω άλλων πρωτοκόλλων του επιπέδου εφαρµογής όπως HTTP, SMTPή FTP.
SOAP
Το πρωτόκολλο αποτελείται από τρία διακριτά τµήµατα:
1. Αναλαµβάνει την γενική περιγραφή ενός µηνύµατος.
2. Υλοποιεί κανόνες για την περιγραφή σύνθετων τύπων δεδοµένων.
3. Ρυθµίζει την επικοινωνία µεταξύ των συνδιαλεγόµενων µερών.
WSDL
Είναι µια γλώσσα που περιγράφει εφαρµογές web services (Web Services Description Language) βασιζόµενη στην γλώσσα XML. Ένα έγγραφο WSDL περιέχει όλη την πληροφορία που χρειάζεται για να γίνει χρήση εφαρµογής Web Service, από την διεύθυνση της µέχρι τα δεδοµένα που ανταλλάσονται.
ΤΕΛΟΣ