HTTP Protocol
Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol
Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές) και τρέχει διαρκώς στο παρασκήνιο ως υπηρεσία (service): Δέχεται αιτήσεις σε ένα network port HTTP: χρησιμοποιεί το port 80 over TCP HTTPS: χρησιμοποιεί το port 443 over SSL/TLS «Ακούει» το δικτυακό port Αποδέχεται ή απορρίπτει αιτήσεις σε συγκεκριμένο port Επεξεργάζεται IP αιτήσεις από τους clients Στέλνει IP αποκρίσεις πίσω στους clients
Web Servers (2/2) Software Υπάρχουν διάφοροι web servers Εγκαθίστανται σε όλα τα λειτουργικά συστήματα Στην πλειονότητα τρέχουν σε περιβάλλον LINUX ή UNIX-like OS Συναντώνται όμως και σε Windows Πιο δημοφιλές : Apache HTTP Server (διατίθεται δωρεάν) MS IIS, κλπ
Web Browser Ο web browser είναι μια εφαρμογή (software application) εγκαταστημένη στον υπολογιστή ή κινητό του χρήστη. Βασικές λειτουργίες: Αιτείται πόρους από διάφορους web servers που ενδιαφέρουν το χρήστη όπως (π.χ. ιστοσελίδες, αρχεία μουσικής, video, εικόνες κ.τ.λ.) Λαμβάνει αρχεία HTML(ιστοσελίδες ή εναλλακτικά αρχεία μουσικής, video και εικόνες) Τα παρουσιάζει στο χρήστη. Διαδραστικά: επιτρέπει στο χρήστη να περιηγηθεί μεταβαίνοντας από σύνδεσμο σε σύνδεσμο
Internet Protocols Ένα πρωτόκολλο διαδικτύου είναι μια προδιαγραφή που καθορίζει ποιες αιτήσεις (requests ) και αποκρίσεις (responses) είναι για επικοινωνία και μεταφορά δεδομένων μεταξύ δύο υπολογιστικών συστημάτων. Παράδειγμα HTTP (GET, POST) FTP
Διασύνδεση: Web server Web browser-http ΗλειτουργίατουHTTP πρωτοκόλλου όπως ενσωματώνεται στην αρχιτεκτονική μιας web εφαρμογής
Πρωτόκολλο Μεταφοράς Υπερκειμένου HTTP (HyperText Transfer Protocol) Το πρωτόκολλο HTTP Το HTTP ανήκει στο στρώμα εφαρμογών του Διαδικτύου υλοποιείτε από ένα πρόγραμμα πελάτη (client program π.χ web browser) και ένα πρόγραμμα εξυπηρετητή (server program π.χ web server). Τα δύο προγράμματα εκτελούνται σε διαφορετικά μηχανήματα Επικοινωνούν με HTTP μηνύματα.
HTTP Βασικά Χαρακτηριστικά HTTP connectionless: Πραγματοποιείται μια σύνδεση για αποστολή αίτησης από τον client Αποσυνδέεται και περιμένει απόκριση από τον server Επανασύνδεση για την λήψη της απόκρισης media independent: Κάθε τύπος δεδομένων μπορεί να σταλεί από το πρωτόκολλο. Τον χειρισμό των δεδομένων αναλαμβάνουν οι client - server. stateless: μόλις ένας κύκλος request/response έχει ολοκληρωθεί όλες οι πληροφορίες που έχει ο server για τον client χάνονται.
HTTP Το HTTP ανήκει στην κατηγορία πρωτοκόλλων request-response (κάθε φάση του πρωτοκόλλου ολοκληρώνεται με την ανταλλαγή ενός αιτήματος): 1. Ο browser ανοίγει μια σύνδεση. 2. Ο browser στέλνει μια αίτηση (request ) στον server. 3. Ο server στέλνει μια απόκριση στον browser. 4. Ησύνδεσηκλείνει. Η επικοινωνία του HTTP γίνεται με τη χρήση του TCP
HTTP Λειτουργία η HTTP επικοινωνία εκκινείται από έναν user agent αιτώντας έναν πόρο από έναν server. HTTP: Client/server connection HTTP: Client/server connection with intermediaries in between HTTP: Cached server response
HTTP Request and Response (Παράδειγμα) Request (from client to server) GET /index.html HTTP/1.0 Response Info (from server to client) HTTP/1.1 200 OK Date: Mon, 21 Sep 2009 20:36:40 GMT Content-Length: 9490 Content-Type: text/html; charset=utf-8 HTTP/1.1 404 Not Found Date: Mon, 21 Sep 2009 20:44:59 GMT Content-Type: text/html; charset=utf-8 Γραμμή αίτησης: «ζητά το αρχείο index.html»
Δομή request
Δομή request Ένα HTTP request (request line ) διακρίνεται σε τρία βασικά μέρη: Request Method Προσδιορίζει την ενέργεια που θα εκτελεστεί σε ένα πόρο στο server: HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH. Request-URI (Uniform Resource Identifier URI):ενιαίο αναγνωριστικό πόρων. Αναφέρεται στις www διευθύνσεις και σε ένα συνδυασμό από Uniform Resource Locators (URLs) και Uniform Resource Names (URNs). Στην πραγματικότητα είναι ακολουθίες χαρακτήρων που προσδιορίζουν την θέση και το όνομα ενός πόρου. Συνήθως προσδιορίζεται ως: Request-URI = "*" absoluteuri abs_path authority HTTP version: η έκδοση του HTTP πρωτοκόλλου που χρησιμοποιεί ο χρήστης.
Δομή Response HTTP-version status-code reason-phrase Ένα HTTP Response (status line ) διακρίνεται επίσης σε τρία βασικά μέρη: HTTP Version Την έκδοση του HTTP πρωτοκόλλου που χρησιμοποιείται. Status Code Ένα κωδικό με το αποτέλεσμα την διαδικασίας (π.χ. κωδικός για επιτυχία ή κωδικός κάποιου λάθους) Περιλαμβάνει headers παρόμοια σε σκοπό και δομή με αυτά των HTTP Request Headers. Reason-phrase Μια λέξη που περιγράφει το αποτέλεσμα της διαδικασίας.
HTTP methods: GET, POST Η μέθοδος GET χρησιμοποιείται για την αίτηση αποστολής ενός πόρου από το server πίσω στον πελάτη. Πρότυπο: η μέθοδος GET θα πρέπει να χρησιμοποιείται αποκλειστικά για την ανάκτηση δεδομένων (π.χ. μιας ιστοσελίδας) και μόνο (όχι για π.χ. αποθήκευση ή ενημέρωση δεδομένων στο server κ.τ.λ.) Δεν τηρείται πάντα. Αν το request συνοδεύεται από δεδομένα του πελάτη αυτά προσκολλώνται στourl. Είναι ορατά άμεσα στο χρήστη, αφού εμφανίζεται στο URL.
HTTP methods: GET, POST ημέθοδοςpost χρησιμοποιείται τυπικά για την αποστολή δεδομένων στο server (π.χ για παράδειγμα το όνομα και ο κωδικός ενός χρήστη που αποστέλλονται στο server μέσω μιας φόρμας login). τα προς αποστολή δεδομένα δεν προσκολλώνται στην URL παρά τοποθετούνται στο HTTP Request Body. Κατά συνέπεια μπορεί να έχουν πολύ μεγαλύτερο μέγεθος Δεν είναι άμεσα ορατά από τον χρήστη.
HTTP methods: GET, POST Χρήση GET, POST σε HTML form
HTTP- status code Status code Informational (1xx) Successful (2xx) Redirection (3xx) Client error (4xx) Server error (5xx)
HTTP- status code Παραδείγματα 1XX Informational 100: The server has received the first part of the request. 2XX Success 200: The request is successful and the response is returned in the following message body. 3XX Redirection 300: Multiple choices. 4XX Client error 404: The requested file is not found. 5XX Server error 500: Internal server error.