واسط دروازه مشترک

واسط دروازهٔ مشترک (سی‌جی‌آی) یک متد استاندارد است که برای ایجاد محتوای پویا در صفحات وب و برنامه‌های کاربردی وب استفاده می‌شود. سی‌جی‌آی هنگامی که روی یک وب‌سرور اجرا می‌شود، یک واسطه میان وب‌سرور و برنامه‌هایی که محتوای وب را ایجاد می‌کنند به وجود می‌آورد. این برنامه‌ها را CGI Script یا به‌طور خلاصه CGI می‌نامند که معمولاً با زبان‌های اسکریپت نویسی مثل پایتون ، روبی، پرل نوشته می‌شوند، اما امکان نوشتن آن‌ها با زبان‌های برنامه‌نویسی نیز وجود دارد.

واسط دروازه مشترک

نگارش ویرایش

برنامهٔ CGI زیر تمام متغیرهای محیط که از سرور وب عبور کرده‌اند را نشان می‌دهد:

# !/usr/bin/perl

=head1 DESCRIPTION

printenv — a CGI program that just prints its environment

=cut
print "Content-type: text/plain\r\n\r\n";

for my $var ( sort keys %ENV ) {
 printf "%s = \"%s\"\r\n", $var, $ENV{$var};
}

اگر یک جستجوگر وب، درخواستی مانند:

http://example.com/cgi-bin/printenv.pl/foo/bar?var1=value1&var2=with percent encoding

را برای متغیرهای محیطی مطرح کند، در یک ویندوز ۶۴ بیتی ارائه دهنده وب که سیگوین را اجرا می‌کند، اطلاعات زیر را برمی‌گرداند:

 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"

جستارهای وابسته ویرایش

منابع ویرایش