Δικτύωση

Γνώση Υπολογιστών >> Δικτύωση >  >> Ethernet

Πώς λειτουργεί το Common Gateway Interface;

Η κοινή διασύνδεση πύλης (CGI) είναι ένα τυπικό πρωτόκολλο για τους διακομιστές ιστού για την εκτέλεση εξωτερικών προγραμμάτων, τυπικά σενάρια και την επιστροφή της εξόδου στον πελάτη Web (συνήθως ένα πρόγραμμα περιήγησης στο Web). Λειτουργεί ως γέφυρα μεταξύ του διακομιστή ιστού και άλλων εφαρμογών. Ακολουθεί μια ανάλυση του τρόπου με τον οποίο λειτουργεί:

1. Αίτημα πελάτη: Ένας χρήστης αλληλεπιδρά με μια ιστοσελίδα (π.χ. συμπληρώνει μια φόρμα, κάνει κλικ σε έναν σύνδεσμο) που ενεργοποιεί ένα αίτημα στον διακομιστή ιστού. Αυτό το αίτημα περιλαμβάνει συχνά παραμέτρους ή δεδομένα που πρέπει να επεξεργαστεί το σενάριο.

2. Ο διακομιστής λαμβάνει αίτημα: Ο διακομιστής ιστού λαμβάνει το αίτημα και προσδιορίζει ότι πρέπει να αντιμετωπιστεί από ένα σενάριο CGI. Αυτό καθορίζεται συνήθως από τη διεύθυνση URL (π.χ., μια ρύθμιση διαμόρφωσης ή διακομιστή.

3. Ο διακομιστής εκτελεί σενάριο: Ο διακομιστής επικαλείται το σενάριο CGI. Αυτό περιλαμβάνει τη δημιουργία μιας νέας διαδικασίας για να τρέξει το σενάριο, εξασφαλίζοντας την απομόνωση ασφαλείας μεταξύ του σεναρίου και του ίδιου του διακομιστή. Αυτό είναι κρίσιμο, καθώς ένα συμβιβασμένο σενάριο CGI θα μπορούσε ενδεχομένως να επηρεάσει ολόκληρο τον διακομιστή.

4. Το σενάριο λαμβάνει είσοδο από το διακομιστή, συμπεριλαμβανομένων των παραμέτρων αιτήματος του πελάτη (όπως τα δεδομένα φόρμας), των μεταβλητών περιβάλλοντος (όπως η διεύθυνση IP του χρήστη) και η τυπική είσοδος. Στη συνέχεια επεξεργάζεται αυτές τις πληροφορίες και παράγει έξοδο.

5. Το σενάριο στέλνει απάντηση: Το σενάριο στέλνει την έξοδο του πίσω στον διακομιστή ιστού μέσω της Standard Output (STDOUT) και του τυπικού σφάλματος (STDERR). Η έξοδος περιλαμβάνει συνήθως τις κεφαλίδες HTTP (κωδικός κατάστασης, τύπος περιεχομένου κ.λπ.) και το πραγματικό περιεχόμενο που θα εμφανίζεται στο πρόγραμμα περιήγησης (π.χ. HTML, εικόνες, κείμενο).

6. Ο διακομιστής στέλνει απάντηση στον πελάτη: Ο διακομιστής ιστού λαμβάνει την έξοδο από το σενάριο, ελέγχει τις κεφαλίδες HTTP και στέλνει την απάντηση πίσω στο πρόγραμμα περιήγησης ιστού του πελάτη. Στη συνέχεια, το πρόγραμμα περιήγησης καθιστά το λαμβανόμενο περιεχόμενο.

Βασικές πτυχές και περιορισμοί:

* Ασφάλεια: Επειδή τα σενάρια CGI εκτελούνται ως ξεχωριστές διαδικασίες, τα προσεκτικά μέτρα ασφαλείας είναι ζωτικής σημασίας. Οποιαδήποτε τρωτά σημεία σε ένα σενάριο CGI θα μπορούσε να εκμεταλλευτεί.

* απόδοση: Η δημιουργία μιας νέας διαδικασίας για κάθε αίτημα μπορεί να είναι ένταση πόρων, ειδικά υπό βαρύ φορτίο. Αυτό οδηγεί σε βραδύτερη απόδοση σε σύγκριση με πιο σύγχρονες προσεγγίσεις.

* Ανεξαρτησία της γλώσσας: Τα σενάρια CGI μπορούν να γραφτούν σε οποιαδήποτε γλώσσα προγραμματισμού που μπορεί να παράγει την απαιτούμενη έξοδο. Αυτή η ευελιξία είναι ένα σημαντικό πλεονέκτημα.

* μεταβλητές περιβάλλοντος: Ο διακομιστής ιστού παρέχει ένα σύνολο μεταβλητών περιβάλλοντος στο σενάριο CGI, προσφέροντας σημαντικές πληροφορίες συμφραζομένων.

* κεφαλίδες: Το σενάριο είναι υπεύθυνο για την εξάτμιση των σωστών κεφαλίδων HTTP για να υποδείξει τον τύπο περιεχομένου (π.χ., `text/html`,` image/jpeg`).

Σύγχρονες εναλλακτικές λύσεις:

Ενώ το CGI εξακολουθεί να είναι λειτουργικό, έχει αντικατασταθεί σε μεγάλο βαθμό από πιο αποτελεσματικές και ασφαλείς τεχνολογίες όπως:

* fastcgi: Βελτιώνει τις επιδόσεις διατηρώντας τις διαδικασίες σεναρίου ζωντανή, αποφεύγοντας το γενικό κόστος της δημιουργίας διαδικασιών για κάθε αίτημα.

* WSGI (Python): Μια τυποποιημένη διεπαφή μεταξύ εφαρμογών Web Python και διακομιστών ιστού.

* εναλλακτικές λύσεις CGI για άλλες γλώσσες: Τα περισσότερα σύγχρονα πλαίσια web προσφέρουν ενσωματωμένους μηχανισμούς για την εκτέλεση των αιτημάτων χειρισμού πιο αποτελεσματικά από ό, τι στηρίζονται απευθείας στο CGI.

Συνοπτικά, η CGI παρέχει έναν θεμελιώδη τρόπο για τους διακομιστές ιστού να αλληλεπιδρούν με εξωτερικά προγράμματα, αλλά πάσχουν από προκλήσεις απόδοσης και ασφάλειας που οδήγησαν στη μείωση του υπέρ των πιο σύγχρονων προσεγγίσεων. Η κατανόηση της CGI εξακολουθεί να είναι χρήσιμη για την κατανόηση της ιστορίας και των υποκείμενων αρχών της ανάπτυξης εφαρμογών ιστού.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα