Common Gateway Interface: Διαφορά μεταξύ των αναθεωρήσεων

ορισμός, ιστορικό, πως λειτουργεί
Χωρίς σύνοψη επεξεργασίας
(ορισμός, ιστορικό, πως λειτουργεί)
{{πληροφορίες}}Το '''CGI''' (Common Gateway Interface - μεταφράζεται ως "κοινή πυλαία διεπαφή πύλης") είναι μια μέθοδος επέκτασηςεπέκταση της λειτουργικότητας του [[Εξυπηρετητής|εξυπηρετητή ιστοσελίδων]] (web server) μεη τηνοποία παρέχει τη δυνατότητα εκτέλεσης προγραμμάτων ή scripts.[[γλώσσα Μια κοινή χρήση του CGI είναι π.χ. μια φόρμα παραγγελίας όπου ο χρήστης στέλνει δεδομένα σε ένα CGI scriptσεναρίων|σεναρίων]] στον εξυπηρετητή, τοαντί scriptτης επικοινωνείαπλής, μεαυτόματης τηαποστολής βάσηστατικών δεδομένων και επιστρέφει τα αποτελέσματα πίσω στο χρήστη σε μια σελίδασελίδων. <ref name="w3_cgi">{{cite web | url=http://www.w3.org/CGI/ | title=CGI: Common Gateway Interface | accessdate=2012-04-12 | publisher=World Wide Web Consortium (W3C)}}</ref><ref>RFC 3875</ref>
 
== Ιστορικό ==
Πριν την διάδοση της γλώσσας [[PHP]]/[[MySQL]] για τη δημιουργία δυναμικών ιστοσελίδων, ο προγραμματιστής έπρεπε να προγραμματίσει σε γλώσσα συνήθως [[C (γλώσσα προγραμματισμού)|C]] ή [[Perl]] μικρά προγράμματα ([[γλώσσα σεναρίων|σενάρια]]) τα οποία θα εκτελούνταν από την ιστοσελίδα δια μέσου της διεπαφής CGI. Αυτά τα εκτελέσιμα προγράμματα δεν ήταν εύκολη υπόθεση να σχεδιαστούν-προγραμματιστούν σε σύγκριση με τον μεταγενέστερο σχεδιασμό δυναμικών ιστοσελίδων χρησιμοποιώντας γλώσσες προγραμματισμού όπως η [[PHP]]/[[MySQL]]. <ref name="php_mysql_page1_CGI">{{cite book | title=Learning PHP & MySQL | author=Michele E. Davis, Jon A. Phillips | year=August 2007 | publisher=O' Reilly | pages=[https://archive.org/details/learningphpmysql0000davi/page/1 1] | isbn=978-0-596-51401-3 | url=https://archive.org/details/learningphpmysql0000davi/page/1 }}</ref>
Ο αρχικός σχεδιασμός των εξυπηρετητών ιστοσελίδων ήταν η αποστολή, στον [[Φυλλομετρητής ιστοσελίδων|φυλλομετρητή ιστοσελίδων]], μιας έτοιμης σελίδας που υπήρχε ήδη στο σύστημα. Για παράδειγμα όταν κάποιος ζητήσει το <code><nowiki>http://example.com/index.html</nowiki></code> ο εξυπηρετητής που υπάρχει στο <code>example.com</code> αναζητά τη σελίδα <code>index.html</code> στον κεντρικό του κατάλογο και την επιστρέφει όπως είναι. Αυτό δεν επιτρέπει τη μεταφορά στον φυλλομετρητή τίποτε άλλο παρά στατικά δεδομένα.
 
Το 1993 το Αμερικάνικο «Εθνικό Κέντρο Εφαρμογών για Υπερυπολογιστές» (NCSA) συζήτησε τη δυνατότητα δημιουργίας μιας διεπαφής η οποία θα μπορούσε να εκτελεί προγράμματα στον εξυπηρετητή ώστε να δημιουργούνται δυναμικές σελίδες. Οι συζητήσεις διενεργήθηκαν σε μία λίστα ηλεκτρονικού ταχυδρομείου και κατέληξαν στη δημιουργία του RFC 3875.
== Πως λειτουργεί ==
'''Αν''' ο εξυπηρετητής έχει ενεργή τη δυνατότητα εκτέλεσης [[γλώσσα σεναρίων|σεναρίων]] CGI τότε οι σελίδες που βρίσκονται στο φάκελο ο οποίος έχει δηλωθεί ως φάκελος για CGI δεν επιστρέφονται αυτούσιες, αλλά λειτουργούν ως μικρά προγράμματα τα οποία «τρέχουν» στον εξυπηρετητή και το περιεχόμενο της εξόδου τους στέλνεται πίσω στον φυλλομετρητή ιστοσελίδων.
 
Για παράδειγμα το αρχικό <code>php.cgi</code> του Rasmus Lerdorf, πριν στείλει στον φυλλομετρητή ιστοσελίδων το βιογραφικό του σημείωμα, κατέγραφε σε μια λίστα, στον εξυπηρετητή, το ποιος το ζήτησε.
 
==Παράδειγμα==
Ανώνυμος χρήστης