HTTP
Εισαγωγή
Γενική Περιγραφή
Αίτησης
Επικεφαλίδα της
Αίτησης
Πληροφορία του Πελάτη
Γενική Περιγραφή
Απάντησης
Πεδία Απάντησης
Εισαγωγή
Το WWW στηρίζεται στην αρχιτεκτονική πελάτη-εξυπηρετητή (client-server).
Ένας WWW server είναι ένα πρόγραμμα του οποίου ο μοναδικός
σκοπός του είναι να παρέχει αρχεία (γενικότερα πόρους) σε
άλλα προγράμματα κάθε φορά που του ζητείται. Ένας WWW client
είναι ένα πρόγραμμα το οποίο αλληλεπιδρά με τον χρήστη και
μεταφέρει τις αιτήσεις του για αρχεία σε WWWservers. Το πρωτόκολλο
που χρησιμοποιούν οι WWWclients και servers για την ολοκλήρωση
των συναλλαγών τους είναι το HTTP (Hypertext Transfer Protocol).
Γενική Περιγραφή
Αίτησης
Το HTTP πρωτόκολλο χρησιμοποιήθηκε στο WWW αρχικά το 1990.
Βασίζεται στο μοντέλο αίτησης/απάντησης. Ο πελάτης αρχικοποιεί
μια σύνδεση με τον εξυπηρετητή στέλνοντας του την αίτηση.
Η αίτηση αποτελείται από τρία μέρη:
|
Την
επικεφαλίδα της αίτησης (δηλαδή η πρώτη γραμμή της) η
οποία δηλώνει το αρχείο που ζητάει ο πελάτης, την μέθοδο
που θα εφαρμοστεί στο ζητούμενο αρχείο και την έκδοση
του πρωτοκόλλου. |
|
Πληροφορία
του πελάτη η οποία περιγράφει τις δυνατότητες του και
τις προτιμήσεις του. |
|
Ένα
προαιρετικό τμήμα δεδομένων. |
Επικεφαλίδα της
Αίτησης
Όπως αναφέρθηκε, η επικεφαλίδα της αίτησης περιγράφει το ζητούμενο
αρχείο καθώς και την μέθοδο η οποία θα εφαρμοστεί σε αυτό.
Το συντακτικό της επικεφαλίδας είναι:
Request-Line = Method Request-URI HTTP-Version
Η μέθοδος συνήθως είναι ένα από τα επόμενα:
|
GET:
χρησιμοποιείται για την απόκτηση (retrieve) του αρχείου
που περιγράφεται από το Request-URI. |
|
HEAD:
είναι όμοια με την προηγούμενη μέθοδο με την διαφορά ότι
ο server που λαμβάνει την αίτηση επιστρέφει μόνο μεταπληροφορία
που σχετίζεται με το ζητούμενο αρχείο (πχ. πότε τροποποιήθηκε
τελευταία φορά, ποιο είναι το μέγεθος του) και όχι το
ζητούμενο αρχείο. |
|
POST:
χρησιμοποιείται για να πληροφορήσει τον server ότι το
τμήμα δεδομένων που εσωκλείεται στην αίτηση πρέπει να
ληφθεί σαν είσοδος στο ζητούμενο αρχείο. |
Πληροφορία του Πελάτη
Δίνεται η δυνατότητα στον πελάτη να στείλει στον server επιπλέον
πληροφορία που πρέπει να λάβει υπόψιν του για την εξυπηρέτηση
της αίτησης. Τα κυριότερα πεδία, είναι τα εξής:
|
Authorization:
όταν απαιτείται κάποια πιστοποίηση του πελάτη που ζητά
το συγκεκριμένο αρχείο. |
|
If-Modified-Since:
χρησιμοποιείται για την υλοποίηση ενός υπό συνθήκην GET.
Αν το ζητούμενο αρχείο του server δεν έχει τροποποιηθεί
μετά από την χρονική στιγμή που περιγράφεται στο πεδίο
αυτό, ο server επιστρέφει μόνο μια ειδοποίηση με την πληροφορία
αυτή. Διαφορετικά, επιστρέφει το τροποποιημένο ζητούμενο
αρχείο. Ουσιαστικά, η πρόσθεση αυτού του πεδίου έγινε
για λόγους βελτίωσης της απόδοσης του λειτουργίας του
πρωτοκόλλου. Χωρίς το πεδίο αυτό, πρέπει να σταλλούν δυο
αιτήσεις, για την υλοποίηση του υπό συνθήκηνGET. Mια με
την μέθοδο HEAD για να αποκτήσουμε μεταπληροφορία για
το αρχείο (και έτσι να διαπιστώσουμε τον χρόνο της τελευταίας
τροποποίησης του) και σε περίπτωση που το αρχείο έχει
τροποποιηθεί, ακόμα μια αίτηση με την μέθοδο GET για να
αποκτηθεί το ίδιο το αρχείο. |
|
User-Agent:
παρέχει πληροφορία για το λογισμικό (WWW browser) που
χρησιμοποιεί ο πελάτης για να στείλει την αίτηση και να
λάβει την απάντηση. |
Γενική Περιγραφή
Απάντησης
Αφού ο WWW server λάβει και επεξεργαστεί την αίτηση, απαντά
στον πελάτη με την μορφή μιας HTTP απάντησης:
Απάντηση = Απλή απάντηση / Σύνθετη απάντηση
Απλή απάντηση = [Ζητούμενο αρχείο]
Σύνθετη απάντηση = Επικεφαλίδα απάντησης, Πεδία
απάντησης [Ζητούμενο αρχείο]
Η επικεφαλίδα της απάντησης αποτελείται από την έκδοση του
HTTP πρωτόκολλου, ακολουθούμενη από έναν κωδικό αριθμό απάντησης
και μια επεξήγηση του προηγούμενου αριθμού:
Επικεφαλίδα = HTTP-Version Code Phrase
Ο κωδικός αριθμός απάντησης είναι ένας τριψήφιος ακέραιος
αριθμός ο οποίος δείχνει το αποτέλεσμα της επεξεργασίας της
αίτησης του πελάτη από τον εξυπηρετητή. Το πρώτο ψηφίο καθορίζει
και το είδος της απάντησης:
|
1
xx: Δεν χρησιμοποιείται ακόμη,θα χρησιμοποιηθεί μελλοντικά.
|
|
2
xx: Η αίτηση λήφθηκε και επεξεργάστηκε επιτυχώς από τον
εξυπηρετητή. |
|
3
xx: Ανακατεύθυνση. Το ζητούμενο αρχείο βρίσκεται σε κάποιον
άλλον WWW server. |
|
4
xx: Λάθος αίτησης. Η αίτηση του πελάτη πιθανόν να περιέχει
συντακτικά λάθη και δεν μπορεί να εξυπηρετηθεί από τον
WWW server. |
|
5
xx: Ο server απέτυχε να εξυπηρετήσει την αίτηση εξαιτίας
ενός δικού του σφάλματος. |
Πεδία Απάντησης
Χωρίζονται σε δυο κατηγορίες:
|
Αυτά
που περιέχουν επιπλέον πληροφορία σχετικά με την απάντηση
και δεν μπορούν να τοποθετηθούν στην επικεφαλίδα της.
Τα κυριότερα είναι: |
|
server:
παρέχει πληροφορία για το λογισμικό που χρησιμοποιήθηκε
από τον server για να εξυπηρετήσει την αίτηση.
|
|
WWW-Authenticate:
για να πληροφορήσει τον πελάτη ότι απαιτείται κάποια πιστοποίηση
για να προσπελάσει το αρχείο. |
|
Αυτά
που περιέχουν πληροφορία σχετικά με το ζητούμενο αρχείο
που επιστρέφει ο server στον πελάτη. Τα κυριότερα στην
κατηγορία αυτή είναι: |
|
Content-Encoding:
κωδικοποίηση που έχει υποστεί το αρχείο. |
|
Content-Length:
το μέγεθος της απάντησης (δηλαδή του ζητούμενου αρχείου).
|
|
Expires:
ημερομηνία μέχρι την οποία δεν θα τροποποιηθεί το αρχείο.
|
|
Last-Modified:
ημερομηνία τελευταίας τροποποίησης του αρχείου.
|
|