Common Gateway Interface: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
EmausBot (diskuse | příspěvky)
m r2.7.2+) (Robot: Přidávám bg:CGI
Addbot (diskuse | příspěvky)
m Bot: Odstranění 34 odkazů interwiki, které jsou nyní dostupné na Wikidatech (d:q264364)
Řádek 79: Řádek 79:


[[Kategorie:World Wide Web]]
[[Kategorie:World Wide Web]]

[[ar:واجهة المعابر العامة]]
[[bar:CGI]]
[[bg:CGI]]
[[da:Common Gateway Interface]]
[[de:Common Gateway Interface]]
[[el:Common Gateway Interface]]
[[en:Common Gateway Interface]]
[[eo:CGI]]
[[es:Interfaz de entrada común]]
[[et:CGI]]
[[eu:Common Gateway Interface]]
[[fi:CGI]]
[[fr:Common Gateway Interface]]
[[he:Common Gateway Interface]]
[[hi:कॉमन गेटवे इंटरफेस]]
[[hu:Common Gateway Interface]]
[[id:Common Gateway Interface]]
[[is:Common Gateway Interface]]
[[it:Common Gateway Interface]]
[[ja:Common Gateway Interface]]
[[ko:공용 게이트웨이 인터페이스]]
[[lt:CGI]]
[[nl:Common Gateway Interface]]
[[no:Common Gateway Interface]]
[[pl:Common Gateway Interface]]
[[pt:CGI]]
[[ru:CGI]]
[[sk:Spoločné rozhranie sieťového priechodu]]
[[sl:Common Gateway Interface]]
[[sv:Common Gateway Interface]]
[[ta:பொதுவான கேட்வே இடைமுகம்]]
[[te:కామన్ గేట్వే ఇంటర్ఫేస్]]
[[uk:CGI]]
[[zh:通用网关接口]]

Verze z 10. 3. 2013, 08:29

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