Common Gateway Interface: Διαφορά μεταξύ των αναθεωρήσεων
μ προστέθηκε η Κατηγορία:Παγκόσμιος ιστός (με το HotCat) |
|||
Γραμμή 2: | Γραμμή 2: | ||
Πριν την διάδοση της γλώσσας [[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=1 | isbn=978-0-596-51401-3}}</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=1 | isbn=978-0-596-51401-3}}</ref> |
||
==Παράδειγμα== |
|||
Ο παρακάτω κώδικας CGI σε γλώσσα προγραμματισμού [[Perl]] εμφανίζει όλες τις μεταβλητές που έχει ο εξυπηρετητής: |
|||
<syntaxhighlight lang="perl"> |
|||
#!/usr/local/bin/perl |
|||
## |
|||
## printenv—demo CGI πρόγραμμα το οποίο τυπώνει τις μεταβλητές του συστήματος |
|||
## |
|||
# |
|||
print "Content-type: text/plain\n\n"; |
|||
foreach $var (sort(keys(%ENV))) { |
|||
$val = $ENV{$var}; |
|||
$val =~ s/\n/\\n/g; |
|||
$val =~ s/"/\\"/g; |
|||
print "${var}=\"${val}\"\n"; |
|||
} |
|||
</syntaxhighlight> |
|||
* Για παράδειγμα, εάν ο [[Web browser|φυλλομετρητής]] ζητήσει από τον [[Εξυπηρετητής|εξυπηρετητή]] τις μεταβλητές του συστήματος στο <tt><nowiki>http://example.com/cgi-bin/printenv.pl/foo/bar?var1=value1&var2=with%20percent%20encoding</nowiki></tt>, σε ένα 64-bit λειτουργικό [[Microsoft Windows]] με εξυπηρετητή να τρέχει κάτω από [[cygwin]] επιστρέφονται οι παρακάτω πληροφορίες: <small> |
|||
COMSPEC="C:\Windows\system32\cmd.exe" |
|||
DOCUMENT_ROOT="C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs" |
|||
GATEWAY_INTERFACE="CGI/1.1" |
|||
HOME="/home/SYSTEM" |
|||
HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" |
|||
HTTP_ACCEPT_CHARSET="ISO-8859-1,utf-8;q=0.7,*;q=0.7" |
|||
HTTP_ACCEPT_ENCODING="gzip, deflate" |
|||
HTTP_ACCEPT_LANGUAGE="en-us,en;q=0.5" |
|||
HTTP_CONNECTION="keep-alive" |
|||
HTTP_HOST="example.com" |
|||
HTTP_USER_AGENT="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0" |
|||
PATH="/home/SYSTEM/bin:/bin:/cygdrive/c/progra~2/php:/cygdrive/c/windows/system32:..." |
|||
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" |
|||
PATH_INFO="/foo/bar" |
|||
PATH_TRANSLATED="C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\foo\bar" |
|||
QUERY_STRING="var1=value1&var2=with%20percent%20encoding" |
|||
REMOTE_ADDR="127.0.0.1" |
|||
REMOTE_PORT="63555" |
|||
REQUEST_METHOD="GET" |
|||
REQUEST_URI="/cgi-bin/printenv.pl/foo/bar?var1=value1&var2=with%20percent%20encoding" |
|||
SCRIPT_FILENAME="C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin/printenv.pl" |
|||
SCRIPT_NAME="/cgi-bin/printenv.pl" |
|||
SERVER_ADDR="127.0.0.1" |
|||
SERVER_ADMIN="(server admin's email address)" |
|||
SERVER_NAME="127.0.0.1" |
|||
SERVER_PORT="80" |
|||
SERVER_PROTOCOL="HTTP/1.1" |
|||
SERVER_SIGNATURE="" |
|||
SERVER_SOFTWARE="Apache/2.2.19 (Win32) PHP/5.2.17" |
|||
SYSTEMROOT="C:\Windows" |
|||
TERM="cygwin" |
|||
WINDIR="C:\Windows"</small> |
|||
Από τις μεταβλητές περιβάλλοντος, μπορούμε να δούμε ότι ο [[Web browser|φυλλομετρητής]] είναι ο [[Firefox]] ο οποίος τρέχει σε λειτουργικό [[Windows 7]] με επεξεργαστή 64bit. Ο εξυπηρετητής είναι ο [[Apache HTTP εξυπηρετητής|Apache]] και το σύστημα προσομοιώνει το λειτουργικό [[Unix]]. Το σενάριο CGI ονομάζεται <tt>cgi-bin/printenv.pl</tt>. |
|||
== Παραπομπές == |
== Παραπομπές == |
Έκδοση από την 18:27, 27 Σεπτεμβρίου 2016
Το CGI (Common Gateway Interface - μεταφράζεται ως "κοινή πυλαία διεπαφή ") είναι μια μέθοδος επέκτασης της λειτουργικότητας του εξυπηρετητή ιστοσελίδων (web server) με την δυνατότητα εκτέλεσης προγραμμάτων ή scripts. Μια κοινή χρήση του CGI είναι π.χ. μια φόρμα παραγγελίας όπου ο χρήστης στέλνει δεδομένα σε ένα CGI script στον εξυπηρετητή, το script επικοινωνεί με τη βάση δεδομένων και επιστρέφει τα αποτελέσματα πίσω στο χρήστη σε μια σελίδα. [1]
Πριν την διάδοση της γλώσσας PHP/MySQL για τη δημιουργία δυναμικών ιστοσελίδων, ο προγραμματιστής έπρεπε να προγραμματίσει σε γλώσσα συνήθως C ή Perl μικρά προγράμματα (σενάρια) τα οποία θα εκτελούνταν από την ιστοσελίδα δια μέσου της διεπαφής CGI. Αυτά τα εκτελέσιμα προγράμματα δεν ήταν εύκολη υπόθεση να σχεδιαστούν-προγραμματιστούν σε σύγκριση με τον μεταγενέστερο σχεδιασμό δυναμικών ιστοσελίδων χρησιμοποιώντας γλώσσες προγραμματισμού όπως η PHP/MySQL. [2]
Παραπομπές
- ↑ «CGI: Common Gateway Interface». World Wide Web Consortium (W3C). Ανακτήθηκε στις 12 Απριλίου 2012.
- ↑ Michele E. Davis, Jon A. Phillips (Αυγούστου 2007). Learning PHP & MySQL. O' Reilly. σελ. 1. ISBN 978-0-596-51401-3.
Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα Common Gateway Interface της Αγγλικής Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 4.0. (ιστορικό/συντάκτες). |