Κεφάλαιο 2 - Θεωρητικό Υπόβαθρο
23
Η MySQL επιτρέπει στην εφαρμογή μας την αποθήκευση στοιχείων σε μία βάση
δεδομένων και την προσπέλασή τους μέσω SQL ερωτημάτων. Η αλληλεπίδραση της
εφαρμογής μας με την βάση δεδομένων γίνεται αποκλειστικά μέσω της γλώσσας PHP η οποία
μας δίνει την δυνατότητα να θέσουμε ερωτήματα SQL με ασφαλή και άμεσο τρόπο με την
χρήση της διεπαφής PDO (PHP Data Objects, PHP Αντικείμενα Δεδομένων) [20]. Καθώς η
εφαρμογή μας απαιτεί την χρήση συστήματος χρηστών αλλά και την διατήρηση αρχείων,
έργων και εξαρτημάτων, γίνεται φανερό ότι πρέπει να διατηρήσουμε κάποια δεδομένα. Έτσι
χρησιμοποιούμε την βάση δεδομένων για την αποθήκευση στοιχείων χωρισμένα σε κατηγορίες
που αντιστοιχούν σε διαφορετικούς πίνακες βάσης δεδομένων. Σε αυτούς τους πίνακες
διατηρούμε δεδομένα όπως τις λεπτομέρειες που προσδιορίζουν τον κάθε χρήστη, τα στοιχεία
κάθε προγράμματος και αρχείου καθώς και αυτά κάθε δημοσιευμένου εξαρτήματος.
Παράλληλα όμως αποθηκεύουμε και συνδετικά στοιχεία όπως τους συγγραφείς που
αντιστοιχούν σε κάθε έργο και εγγραφές που συνδέουν δύο πίνακες. Μέσω της MySQL
μπορούμε να προσθέσουμε, τροποποιήσουμε, αφαιρέσουμε και προβάλουμε αυτές τις
πληροφορίες. Έτσι η MySQL μας επιτρέπει την διατήρηση μνήμης στο σύστημά μας και την
ομαλή συνεχή ροή πληροφοριών μεταξύ χρηστών και εφαρμογής.
Με τα παραπάνω εργαλεία δημιουργήσαμε τις βασικές λειτουργίες της εφαρμογής μας.
Μία εφαρμογή που αποτελείται από έναν συνεχή κύκλο αλληλεπίδρασης μεταξύ λειτουργιών
εξυπηρετητή και περιηγητή συνδέοντας τελικά την μνήμη του συστήματος με τις απαιτήσεις
του χρήστη.
2.1.5 Πρωτόκολλο HTTP
Το HTTP (Hypertext Transfer Protocol , πρωτόκολλο μεταφοράς υπερκειμένου) [21]
είναι ένα πρωτόκολλο που αποτελεί ριζικό σημείο αναφοράς για την λειτουργία του
διαδικτύου. Έτσι αφού είδαμε τις γλώσσες προγραμματισμού που χρησιμοποιήσαμε, αξίζει να
αναφερθούμε σε αυτό το πρωτόκολλο καθώς εισάγει έννοιες που χρησιμοποιούμε ευρέως στην
ανάλυση της εφαρμογής.
Οι βασικές έννοιες που καθορίζονται από το HTTP είναι το μοντέλο πελάτη -
διακομιστή και η λειτουργία αιτήματος και ανταπόκρισης. Η οντότητα του πελάτη δημιουργεί
αιτήματα στην οντότητα του διακομιστή. Ο διακομιστής επεξεργάζεται το αίτημα και
επιστρέφει μία ανταπόκριση περιέχοντας πληροφορίες για την κατάσταση της αίτησης και
συνήθως δεδομένα που ζητήθηκαν. Στο διαδίκτυο, η οντότητα του πελάτη είναι ο περιηγητής
του χρήστη και η οντότητα του διακομιστή είναι ο εξυπηρετητής. Τα συνηθέστερα αιτήματα
είναι αυτά για την λήψη των στοιχείων μίας σελίδας όπου λαμβάνουν ως ανταπόκριση τα
δεδομένα που χρειάζεται ο περιηγητής για την εμφάνιση της σελίδας. Τα διαθέσιμα αιτήματα
που παρέχει το HTTP χωρίζονται σε μεθόδους. Οι μέθοδοι περιγράφουν τον τρόπο με τον οποίο
θα αντιμετωπιστούν τα αιτήματα από τον διακομιστή και το είδος των αναμενόμενων
αποτελεσμάτων από τον πελάτη. Οι μέθοδοι που χρησιμοποιούμε στην εφαρμογή μας και
αξίζει να δούμε ποιο αναλυτικά είναι οι POST και GET. Η μέθοδος POST χρησιμοποιείται σε
αιτήματα που περιέχουν δεδομένα για επεξεργασία από τον διακομιστή. Η μέθοδος αυτή
βρίσκεται συνήθως στην αποστολή μίας φόρμας ενώ μπορεί να επιλεχθεί κατά την αποστολή
δεδομένων μέσω AJAX. Συγκεκριμένα η PHP λαμβάνει τα δεδομένα της μεθόδου POST σε