Http - Web Services

27
HyperText Transfer Protocol Βασίλειος Κοµιανός Ιόνιο Πανεπιστήµιο Μάρτιος 2012

Transcript of Http - Web Services

Page 1: Http -  Web Services

HyperText Transfer Protocol

Βασίλειος Κοµιανός

Ιόνιο Πανεπιστήµιο

Μάρτιος 2012

Page 2: Http -  Web Services

wwwtwitter linkedin

academia europeana

facebook

youtube

stumbleupon

yahoo

webmailgoogle

wikipedia wordpress

blogspot

Page 3: Http -  Web Services

Προϊστορία

• Vannevar Bush: MEMEX, 1945 (θεωρητική πρόταση).

• Ted Nelson: hypertext, 1965 (εµφάνιση του όρου).

• Douglas Engelbart: NLS, 1968.

Page 4: Http -  Web Services

Πιο πρόσφατα

1990

• Tim Berners Lee

• Έψαχνε ένα τρόπο να οργανώσει τη πληροφορία στο δίκτυο.

• Hypertext + http + Internet = World Wide Web

Page 5: Http -  Web Services

WEB

∆οµείται από έγγραφα, κυρίως HTML, τα οποία αρχικά περιείχαν:

• άλλα έγγραφα,

• συνδέσεις προς άλλα έγγραφα – αρχεία

• πλέον υποστηρίζονται και άλλου τύπου αρχεία,

εικόνα – βίντεο κτλ.

Google 1998:

Page 6: Http -  Web Services

HTTP, η εξέλιξη

•1991 http 0.9

•1996 http 1.0

•1999 έως σήµερα http 1.1

Σε κάθε νεώτερη έκδοση αναφέρεται ότι θα πρέπει οι υλοποιήσεις να τηρούν συµβατότητα µε τις παλαιότερες εκδόσεις.

Page 7: Http -  Web Services

HTTP

Επίπεδο Εφαρµογής

Μεταφοράς

∆ικτύου

Ζεύξης δεδοµένων

Φυσικό µέσο

HTTP

Client

Επίπεδο Εφαρµογής

Μεταφοράς

∆ικτύου

Ζεύξης δεδοµένων

Φυσικό µέσο

HTTP

Server

TCPTCP

request

response

Page 8: Http -  Web Services

∆υο λόγια για το TCP

• Transmission Control Protocol –πρωτόκολλο ελέγχου µεταφοράς.

• Αξιόπιστη µετάδοση.

• Με συνδέσεις.

Page 9: Http -  Web Services

Ανταλλαγή µηνυµάτων στο http

Η επικοινωνία µεταξύ client και server γίνεται µε ειδικά µηνύµατα στα οποία εσωκλείεται µια αίτηση (request)ή µια απάντηση (response)και η µορφή των οποίων είναι αυστηρά ορισµένη από το πρωτόκολλο.

Όροι που θα δούµε παρακάτω:• request• response• resource• client• user agent• server

Page 10: Http -  Web Services

HTTP επικοινωνία

Ξεκινάει µε πρωτοβουλία του client, εκκινεί µια TCP σύνδεση µε τον server και εν συνεχεία αποστέλλεισυνήθως αίτηση για λήψη αντικειµένου (resource).

Για παράδειγµα: GET /index.html HTTP/1.1

Ο client µπορεί επίσης να προωθήσει δεδοµένα στον server κάνοντας χρήση της µεθόδου POST.

Page 11: Http -  Web Services

HTTP επικοινωνία

O server αποκρίνεται σε µια αίτηση συνθέτοντας ένα µήνυµα το οποίο περιλαµβάνει πληροφορίες σχετικά µε την αίτηση που δέχτηκε και ενδεχοµένως να εσωκλείει και κάποιο αντικείµενο αν του ζητήθηκε.

Οποιοδήποτε αντικείµενο µεταφέρεται µέσω http µηνυµάτων µε µια σχετική ένδειξη ώστε ο client να προβεί στους απαραίτητους χειρισµούς.

Σε αυτό το σηµείο µπορούµε να κατανοήσουµε και τον λόγο της µακροβιότητας του πρωτοκόλλου παρόλο που από την τελευταία του έκδοση o ιστός έχει αλλάξει εντυπωσιακά.

Page 12: Http -  Web Services

HTTP 0.9 - 1.0TCP Non-Persistent Connections

Web client Web server

request

TCP connection no 1

response

Page 13: Http -  Web Services

HTTP 0.9 - 1.0TCP Non-Persistent Connections

Web client Web server

request

TCP connection no 1

response

Η σύνδεση ολοκληρώνει την επικοινωνία και τερµατίζεται.

Page 14: Http -  Web Services

HTTP 0.9 - 1.0TCP Non-Persistent Connections

Web client Web server

request

TCP connection no 1

response

request

TCP connection no 2

response

Νέα σύνδεση για κάθε αντικείµενο.

Page 15: Http -  Web Services

HTTP 0.9 - 1.0TCP Non-Persistent Connections

Web client Web server

request

TCP connection no 1

response

request

TCP connection no 2

response

Page 16: Http -  Web Services

HTTP 1.1TCP Persistent Connections

Web client Web server

request

TCP connection

response

request

response

request

response

request

response

Πολλαπλά αντικείµενα διέρχονται από µια σύνδεση.

Page 17: Http -  Web Services

HTTP 1.1TCP Persistent Connections

Web client Web server

request

TCP connection

response

request

response

request

response

request

response

Με τη λήξη της επικοινωνίας τερµατίζεται η σύνδεση.

Page 18: Http -  Web Services

HTTP 1.1TCP Persistent Connections and Pipelining

Web client Web server

requestTCP connection

request

response

request

response

response

Οι αιτήσεις στέλνονται παράλληλα χωρίς να χρειάζεται να περιµένει για απόκριση:• Βελτίωση απόδοσης,• Καλύτερη χρήση του TCP.

Page 19: Http -  Web Services

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

Page 20: Http -  Web Services

Proxies & Caching

Web client1 Web server

Web Cache-

Proxy Server

request requestresponseresponse

Αν ο client 2 ζητήσει από τον proxy το ίδιο αντικείµενο µε αυτό που ζήτησε ο client 1προηγουµένως, ο proxy ελέγχει στον server της πηγήςγια τυχόν τροποποίηση, αν δεν έχει συµβεί στέλνει το αποθηκευµένοαντίγραφο που έχει, σε αντίθετη περίπτωση λαµβάνει και προωθεί το νέο αντικείµενο.

Web client2

request

response

Page 21: Http -  Web Services

Μέρος 2ο - Web Services

Web Services είναι µια τεχνολογία η οποία επιτρέπει την επικοινωνία και την αλληλεπίδραση µεταξύ διαφορετικών εφαρµογών, ανεξαρτήτως πλατφόρµας ή γλώσσας προγραµµατισµού.

Page 22: Http -  Web Services

Web Services

Στην πραγµατικότητα πρόκειται για ένα σύνολο τεχνολογιών. Οι τεχνολογίες από τις οποίες αποτελείται είναι:

• HTTP

• XML

• SOAP

• WSDL

• UDDI

Page 23: Http -  Web Services

XML

• Πρόκειται για µια γλώσσα περιγραφής η οποία δεν εξαρτάται από την πλατφόρµα.

• ∆ηµιουργήθηκε µε σκοπό να διευκολύνει την ανταλλαγή δεδοµένων µεταξύ εφαρµογών που επικοινωνούν µέσω διαδικτύου.

• Ένα έγγραφο XML περιέχει τα δεδοµένα αλλά και την απαραίτητη περιγραφή τους.

Page 24: Http -  Web Services

SOAP

Είναι ένα πρωτόκολλο ανταλλαγής δεδοµένων (Simple Object Access Protocol) που χρησιµοποιείται σε κατανεµηµένα συστήµατα και στηρίζεται στην τεχνολογία XML .

Τα µηνύµατα SOAP µεταφέρονται µέσω άλλων πρωτοκόλλων του επιπέδου εφαρµογής όπως HTTP, SMTPή FTP.

Page 25: Http -  Web Services

SOAP

Το πρωτόκολλο αποτελείται από τρία διακριτά τµήµατα:

1. Αναλαµβάνει την γενική περιγραφή ενός µηνύµατος.

2. Υλοποιεί κανόνες για την περιγραφή σύνθετων τύπων δεδοµένων.

3. Ρυθµίζει την επικοινωνία µεταξύ των συνδιαλεγόµενων µερών.

Page 26: Http -  Web Services

WSDL

Είναι µια γλώσσα που περιγράφει εφαρµογές web services (Web Services Description Language) βασιζόµενη στην γλώσσα XML. Ένα έγγραφο WSDL περιέχει όλη την πληροφορία που χρειάζεται για να γίνει χρήση εφαρµογής Web Service, από την διεύθυνση της µέχρι τα δεδοµένα που ανταλλάσονται.

Page 27: Http -  Web Services

ΤΕΛΟΣ