Σession στο HTTP
Στις βάσεις των cookies λειτουργούν οι συνεδρίες (sessions). Οι συνεδρίες επιτρέπουν στον server να θυμάται τον client και να αποθηκεύει πληροφορίες για αυτόν.
Για παράδειγμα, ένας επισκέπτης μιας ιστοσελίδας μπορεί να προσθέτει προϊόντα στο καλάθι αγορών ενός καταστήματος. Και μετά από reload της σελίδας, ο server αναγνωρίζει τον client και του εμφανίζει τα προϊόντα που είχαν προστεθεί σε αυτόν τον browser.
Ας δούμε πώς λειτουργεί αυτό. Όπως ήδη γνωρίζετε, το πρωτόκολλο HTTP δεν αποθηκεύει κατάσταση (stateless), με την έννοια ότι ο server δεν μπορεί να διακρίνει από ποιον client προέρχεται ένα αίτημα. Γι' αυτό σε αυτήν την περίπτωση χρησιμοποιείται μια λύση.
Η ουσία της είναι η εξής.
Στην πρώτη επικοινωνία του client, ο server
του ορίζει ένα cookie με μια τυχαία
μοναδική συμβολοσειρά. Αυτό το cookie ονομάζεται
session cookie και συνήθως έχει
όνομα sessid.
Ο server επίσης αποθηκεύει στον εαυτό του μια λίστα όλων των session cookies και συνδέει σ' αυτά τα απαραίτητα δεδομένα. Για παράδειγμα, τη λίστα των επιλεγμένων προϊόντων στο κατάστημα.
Στην επόμενη επικοινωνία του client, αυτός θα αποστέλλει στον server το session cookie και ο server τον αναγνωρίζει μέσω αυτού του cookie και μπορεί να ανακτήσει τα δεδομένα που έχουν αποθηκευτεί στον server για τον συγκεκριμένο client.
Το πρωτόκολλο HTTP δεν αποθηκεύει δεδομένα μεταξύ των αιτημάτων. Παρ' όλα αυτά, ο server μπορεί να διακρίνει τους χρήστες. Πώς αυτό υλοποιείται;