Common Gateway Interface: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
→‎Další informace: Oprava pravopisu
značky: editace z mobilu editace z mobilní aplikace
HypoBOT (diskuse | příspěvky)
m Přidání šablony commonscat dle ŽOPP z 28. 7. 2016; kosmetické úpravy
Řádek 4: Řádek 4:


== Další informace ==
== Další informace ==
Webový server, který podporuje rozhraní CGI lze nakonfigurovat pro interpretaci adresy URL, která odkazuje na CGI skripty. Standardně se cgi-bin adresáře ukládají v kořenovém adresáři stromové struktury a se všemi takto uloženými soubory se nakládá jako s CGI skripty. Další populární úmluva je rozpoznávání pomocí přípony; například pokud je u CGI skriptů použita přípona .cgi, může být webový server nakonfigurován tak, aby interpretoval všechny tyto soubory jako CGI skripty.
Webový server, který podporuje rozhraní CGI lze nakonfigurovat pro interpretaci adresy URL, která odkazuje na CGI skripty. Standardně se cgi-bin adresáře ukládají v kořenovém adresáři stromové struktury a se všemi takto uloženými soubory se nakládá jako s CGI skripty. Další populární úmluva je rozpoznávání pomocí přípony; například pokud je u CGI skriptů použita přípona .cgi, může být webový server nakonfigurován tak, aby interpretoval všechny tyto soubory jako CGI skripty.


V případě použití HTTP PUT nebo POST metod, jsou uživatelská data předána v rámci programu přes standardní vstup. V každém případě se podle standardu CGI data předávají do aplikace pomocí některých specifických proměnných prostředí. Toto je v kontrastu s typickým provedením, kde argumenty příkazové řádky jsou používány a prostředí je v nepřetržitém běhu a nedá se mu věřit. Webový server vytváří malé a účinné podmnožiny proměnných prostředí jemu předaných a přidává detaily vztahující se k vykonání programu.
V případě použití HTTP PUT nebo POST metod, jsou uživatelská data předána v rámci programu přes standardní vstup. V každém případě se podle standardu CGI data předávají do aplikace pomocí některých specifických proměnných prostředí. Toto je v kontrastu s typickým provedením, kde argumenty příkazové řádky jsou používány a prostředí je v nepřetržitém běhu a nedá se mu věřit. Webový server vytváří malé a účinné podmnožiny proměnných prostředí jemu předaných a přidává detaily vztahující se k vykonání programu.
Řádek 73: Řádek 73:


== Externí odkazy ==
== Externí odkazy ==
* {{commonscat}}
* [http://www.w3.org/CGI/ Popis CGI standardu na stránkách W3.org]
* [http://www.w3.org/CGI/ Popis CGI standardu na stránkách W3.org]



Verze z 6. 12. 2016, 05:58

Common Gateway Interface (zkráceně CGI) je protokol pro propojení externích aplikací s webovým serverem. To serveru umožňuje delegovat požadavek od klienta na externí aplikaci, která dle požadavku vrátí výstup. Taková aplikace typicky zpracuje nějaký skript ve webové stránce a webovému serveru navrátí statickou stránku, která je následně poslána klientovi jako výstup jeho požadavku.

Rozhraní Common Gateway Interface bylo v prostředí internetu přítomno již od počátku 90. let a ve své době představovalo jediný způsob dynamického zpracování obsahu. Postupně vznikla efektivnější řešení (FastCGI, integrace skriptovacích jazyků jako modulu WWW serveru) a CGI bylo vytlačeno do ústraní.

Další informace

Webový server, který podporuje rozhraní CGI lze nakonfigurovat pro interpretaci adresy URL, která odkazuje na CGI skripty. Standardně se cgi-bin adresáře ukládají v kořenovém adresáři stromové struktury a se všemi takto uloženými soubory se nakládá jako s CGI skripty. Další populární úmluva je rozpoznávání pomocí přípony; například pokud je u CGI skriptů použita přípona .cgi, může být webový server nakonfigurován tak, aby interpretoval všechny tyto soubory jako CGI skripty.

V případě použití HTTP PUT nebo POST metod, jsou uživatelská data předána v rámci programu přes standardní vstup. V každém případě se podle standardu CGI data předávají do aplikace pomocí některých specifických proměnných prostředí. Toto je v kontrastu s typickým provedením, kde argumenty příkazové řádky jsou používány a prostředí je v nepřetržitém běhu a nedá se mu věřit. Webový server vytváří malé a účinné podmnožiny proměnných prostředí jemu předaných a přidává detaily vztahující se k vykonání programu.

Jednoduchý příklad

Následující CGI program vypisuje všechny proměnné prostředí povolené na webovém serveru:

 #!/usr/local/bin/perl
 ##
 ## printenv—demo CGI program which just prints its environment
 ##
 #
 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";
 }
  • Pokud si webový prohlížeč vyžádá informace proměnných prostředí na http://example.com/cgi-bin/printenv.pl/foo/bar?var1=value1&var2=with%20percent%20encoding, 64-bit Microsoft Windows webový server na kterém běží Cygwin vrátí následující informace:
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"

Z výpisu vidíme, že uživatel používá prohlížeč Firefox, který běží na operačním systému Windows 7. Webový server Apache běží na systému, který emuluje Unix a CGI skript má název cgi-bin/printenv.pl

Reference

V tomto článku byl použit překlad textu z článku Common Gateway Interface na anglické Wikipedii.

Související stránky

Externí odkazy