eksypiretites-php

Όπως είπαμε και στην προηγούμενη ενότητα, η γλώσσα php είναι μια γλώσσα scripting η οποία εκτελείται στον server (εξυπηρετητή) και ύστερα το παραγόμενο αποτέλεσμα, είτε αυτό είναι html είτε κάτι άλλο αποστέλλεται ως απάντηση σε ένα αίτημα κάποιου client (πελάτη). Παρακάτω θα προσπαθήσουμε να εξηγήσουμε πως αυτή η σχέση μεταξύ server και client λειτουργεί στην θεωρία.

Ορολογία


Server (Εξυπηρετητής) είναι ο συνδιασμός hardware (δηλαδή ένας υπολογιστής) και software που αναλαμβάνει την παροχή διαφόρων υπηρεσιών «εξυπηρετώντας» αιτήσεις άλλων προγραμμάτων, γνωστών ως clients, που μπορούν να τρέχουν στον ίδιο υπολογιστή ή σε κάποιον άλλον απο απόσταση μέσω κάποιας σύνδεσης δικτύου. Πηγή: wikipedia.org.

Client (Πελάτης) είναι κάποιο λογισμικό (συνήθως browser) που τρέχει σε κάποιον υπολογιστή που επικοινωνεί και υποβάλλει αιτήματα σε κάποιον server, και ύστερα χρησιμοποιεί την απάντηση του server για να προβάλει η να επεξεργαστεί δεδομένα από αυτόν. Πηγή: wikipedia.org.

Web Browser (Περιηγητής ιστού) είναι λογισμικό που επιτρέπει στον χρήστη του να προβάλλει, και να αλληλοεπιδρά με, κείμενα, εικόνες, βίντεο, μουσική, παιχνίδια και άλλες πληροφορίες συνήθως αναρτημένες σε μια ιστοσελίδα ενός ιστότοπου στον Παγκόσμιο Ιστό ή σε ένα τοπικό δίκτυο. Για παράδειγμα ενός browser είναι ο Google Chrome, ή ο Firefox. Πηγή: wikipedia.org.

Ένα όμορφο σαββατιάτικο πρωινό ο Γιάννης θέλοντας να αγοράσει μια καινούργια τηλεόραση για το σπίτι του, αναζητά ένα κατάστημα το οποίο θα τον εξυπηρετήσει. Ψάχνοντας, καταλήγει σε κάποιο στο οποίο θα αγοράσει την τηλεόραση που του αρέσει. Έτσι ζητά από τους υπάλληλους του καταστήματος να τον εξυπηρετήσουν καθώς ξέρει τι ψάχνει και σαφώς θέλει να ξοδέψει λιγότερο χρόνο. Λέει σε έναν υπάλληλο να του δείξει όλες τις τηλεοράσεις με είσοδο HDMI, με ψηφιακό δέκτη και με θύρα USB. Ως πελάτης ο Γιάννης κάνει ένα αίτημα προς τον εξυπηρετητή (τον υπάλληλο δηλαδή) να του δείξει όλες τις τηλεοράσεις με τα χαρακτηριστικά που επιθυμεί, και ο εξυπηρετητής (ο υπάλληλος δηλαδή) θα απαντήσει συγκεκριμένα στο αίτημα του πελάτη.

Έτσι λειτουργεί το μοντέλο client - server στο διαδίκτυο. Τόσο ο client όσο και ο server διαθέτουν λογισμικά τα οποία μπορούν να αποστείλουν και να λάβουν δεδομένα και έτσι να επικοινωνούν μεταξύ τους. Ένας χρήστης μπορεί να ζητήσει μέσα από τον browser του από έναν server έναν πόρο, τα αποτέλεσμα ενός υπολογισμού κ.ο.κ. Ο server αναλαμβάνει να φέρει εις πέρας αυτό αίτημα κάνοντας τις απαραίτητες ενέργειες και δίνοντας το αποτέλεσμα στον browser (δηλαδή τον client) και κατ επέκταση τον χρήστη. Προκειμένου να λειτουργήσει αυτό το μοντέλο θα πρέπει ο client και ο server να διαθέτουν επικοινωνία μεταξύ τους (είτε ενσύρματη είτε ασύρματη). Επίσης να σημειωθεί εδώ πως μπορεί ένας server να είναι και client, πράγμα που θα δούμε σε επόμενη ενότητα.

Στην γλώσσα php ένας client συνήθως χρησιμοποιεί έναν browser (η πλοηγό, φυλλομετρητή) διαδικτύου. Γράφοντας μια διεύθυνση στην γραμμή διευθύνσεων του εκάστοτε browser, ο server που αντιστοιχείται σε αυτή την διεύθυνση λαμβάνει το αίτημα της εμφάνισης της σελίδας από τον client, και στέλνει τα δεδομένα σε αυτόν.

Ο server για να το καταφέρει αυτό διαθέτει κάποιο ειδικό λογισμικό, συνήθως έναν apache server, τον διερμηνέα της php, και μια βάση δεδομένων (συνήθως MYSQL).

  • Ο apache αναλαμβάνει την διαδικασία δημοσιοποίησης στο διαδίκτυο λαμβάνοντας και στέλνοντας τα αιτήματα - δεδομένα, υποστηρίζοντας δηλαδή το πρωτόκολλο http.
  • Ο διερμηνέας php αναλαμβάνει να «τρέξει» την στιγμή της αίτησης τα script που αφορούν την σελίδα που διαθέτει ο εξυπηρετητής, και να δημιουργήσει το παραγόμενο αποτέλεσμα, βασιζόμενος πάντα στα εισαγόμενα στοιχεία από την apache που έλαβε ως αίτημα.
  • Η βάση δεδομένων (MYSQL) αναλαμβάνει την αποθήκευση δεδομένων που αφορούν συνήθως τους πελάτες, ή αλληλεπιδραστικών οντοτήτων που έχουν άμεση σχέση με αυτούς, πχ λογαριασμοί χρηστών, προϊόντα, προμηθευτές κ.ο.κ. Λαμβάνοντας ένα αίτημα από την php, η mysql επιστρέφει τα αντίστοιχα δεδομένα ξανά στην php και ύστερα παράγεται το αποτέλεσμα σε HTML το οποίο θα σταλεί μέσω του apache στον πελάτη.