واسط دروازه مشترک
**واسط دروازهٔ مشترک** (سی‌جی‌آی) یک متد استاندارد است که برای ایجاد محتوای پویا در صفحات وب و برنامه‌های کاربردی وب استفاده می‌شود. سی‌جی‌آی هنگامی که روی یک وب‌سرور اجرا می‌شود، یک واسطه میان وب‌سرور و برنامه‌هایی که محتوای وب را ایجاد می‌کنند به وجود می‌آورد. این برنامه‌ها را 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"

```

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

منابع
-----

* مشارکت‌کنندگان ویکی‌پدیا. «Common Gateway Interface». در *دانشنامهٔ ویکی‌پدیای انگلیسی*.

| * ن
* ب
* و
رابط‌های وب |
| --- |
| سمت سرور | 

|  |  |
| --- | --- |
| پروتکلها | 
* HTTP
* CGI
* SCGI
* FCGI
* AJP
* WSRP
* وب‌سوکت

 |
| رابط برنامه‌نویسی وب | 
* C NSAPI
* C ASAPI
* C ISAPI
* COM ASP
* جاوا سرولت
	+ container
* CLI OWIN
* ASP.NET Handler
* Python WSGI
* Ruby Rack
* JavaScript JSGI
* Perl PSGI
* Lua WSAPI
* Portlet

 |
| Apache modules | 
* mod\_jk
* mod\_lisp
* mod\_mono
* mod\_parrot
* mod\_perl
* mod\_php
* mod\_proxy
* mod\_python
* mod\_wsgi
* mod\_ruby
* Phusion Passenger

 |
| موضوعات | 
* منبع وب در برابر خدمات وب
* Open API
* Webhook
* سرور کاربردی
	+ comparison
* اسکریپت‌نویسی

 |

 |
| سمت کاربر | 

|  |  |
| --- | --- |
| رابط‌های مرورگر | 
* C NPAPI
	+ LiveConnect
	+ XPConnect
* C NPRuntime
* C PPAPI
	+ NaCl
* اکتیوایکس
* BHO
* XBAP

 |
| رابطه برنامه‌نویسی وب | 

|  |  |
| --- | --- |
| W3C | 
* Audio
* کانواس
* CORS
* DOM
* DOM events
* EME
* File
* Geolocation
* IndexedDB
* MSE
* SSE
* SVG
* Video
* وب‌آرتی‌سی
* وب‌سوکت
* Web Messaging
* Web storage
* Web worker
* XMLHttpRequest
* وب‌اسمبلی

 |
| Khronos | 
* WebCL
* وب‌جی‌ال

 |
| دیگر | 
* Gears
* Web SQL Database (پیشتر با نام W3C)
* WebUSB

 |

 |
| موضوعات | 
* ایجکس در برابر اچ‌تی‌ام‌ال پویا
* Mashup
* Web IDL
* اسکریپت‌نویسی

 |

 |
| شرکتهای خدمات وب | 
* بهسازان هاست

 |
| موضوعات | 
* صفحه وب پویا
* Open Web Platform
* برنامه‌های غنی اینترنتی
* برنامه کاربردی وب

 |