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

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Egmontaz (συζήτηση | συνεισφορές)
i/w
αφαίρεση διαφημιστικής παραπομπής - ολίγο εμπλουτισμός (επεξεργασία με το ProveIt)
Γραμμή 1:
Το '''CGI''' (Common Gateway Interface - μεταφράζεται ως "κοινό περιβάλλον διεπαφής") είναι μια μέθοδος επέκτασης της λειτουργικότητας του Web[[Εξυπηρετητής|εξυπηρετητής Serverιστοσελίδων]] (web server) με την δυνατότητα εκτέλεσης προγραμμάτων ή scripts. Μια κοινή χρήση του CGI είναι π.χ. μια φόρμα παραγγελίας όπου ο χρήστης στέλνει δεδομένα σε ένα CGI script στο serverεξυπηρετητή, το script επικοινωνεί με τη βάση δεδομένων και επιστρέφει τα αποτελέσματα πίσω στο χρήστη σε μια σελίδα. <ref groupname="σw3_cgi">{{cite web | url=http://www.awsw3.grorg/knowledgebase.php?actionCGI/ | title=displayarticle&idCGI: Common Gateway Interface | accessdate=712012-04-12 | publisher=World Wide Web Consortium (W3C)}}</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>.
 
== Παραπομπές ==
{{παραπομπές}}
<references group="σ"/>
[[Κατηγορία:Πληροφορική]]
 
{{ενσωμάτωση κειμένου|en|Common Gateway Interface}}
 
[[Κατηγορία:Πληροφορική]]
 
[[ar:واجهة المعابر العامة]]