<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <dfn><code class="CGI" xml:lang="en">GATEWAY_INTERFACE</code></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">版</anchor>を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メタ変数</anchor>です。
普通、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.1</anchor> を表す値「<code class="CGI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.1</anchor></code>」が使われます。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">RFC 3875 - The Common Gateway Interface (CGI) Version 1.1</cite> (<time>2011-11-20 06:09:05 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3875#section-4.1.4">http://tools.ietf.org/html/rfc3875#section-4.1.4</anchor-external></li></ul></refs></section><section><h1>構文</h1><figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <pre class="ABNF code">      GATEWAY_INTERFACE = &quot;CGI&quot; &quot;/&quot; 1*digit &quot;.&quot; 1*digit</pre><figcaption><src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src></figcaption></p></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>が2つ含まれますが、値の大小はそれぞれの値の大小の組み合わせにより決まります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src>。
文字列比較による大小とは異なることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">先導0</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>は生成しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>が、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGIスクリプト</anchor>は無視しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 実際には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGIスクリプト</anchor>がこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メタ変数</anchor>を参照してどうこうするということはないように思います。</comment-p></section><section><h1>実際に使われている値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end><table><tbody><tr><td><code class="CGI">CGI/1.0</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.0</anchor></td></tr><tr><td><code class="CGI">CGI/1.1</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.1</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSI</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">w3m</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">local CGI</anchor></td></tr><tr><td><code class="CGI">CGI/1.2 (Win)</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinCGI</anchor></td></tr><tr><td><code class="CGI">CGI-Perl/1.1</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mod_perl</anchor></td></tr><tr><td><code class="CGI">CGI-PerlEx</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PerlEx</anchor></td></tr><tr><td><code class="CGI">CGI-Ruby/1.1</code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mod_ruby</anchor></td></tr><tr><td><code class="CGI">SIP-CGI/1.1</code></td><td>SIP-CGI/1.1</td></tr></tbody></table></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> PerlEx の書式は仕様書に適合しませんね。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apache</anchor> の実装では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSI</anchor> でこの変数を参照しても、 SSI から呼んだ CGI script で参照しても, 
<code class="CGI">CGI/1.1</code> になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor> から派生した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WSGI</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PSGI</anchor> などは <code>GATEWAY_INTERFACE</code>
を使っていないため、相当する値はありません。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> [NCSA] では、形式を簡単に「CGI/revision」として説明していました。</p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 6.1.4. GATEWAY_INTERFACE (関門界面) (CGI/1.1 draft 03)</figcaption><blockquote><p>This metavariable is set to the dialect of CGI being used by
the server to communicate with the script. Syntax:</p></blockquote><p>このメタ変数は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>と通信するのに使う
CGI の種類に設定されます。構文:</p><blockquote><p><PRE xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" class="ABNF code" xml:lang="en"></PRE><pre>    GATEWAY_INTERFACE = &quot;CGI&quot; &quot;/&quot; major &quot;.&quot; minor
    major             = 1*digit
    minor             = 1*digit
]PRE]
&gt;
Note that the major and minor numbers are treated as separate
integers and hence each may be more than a single digit. Thus
CGI/2.4 is a lower version than CGI/2.13 which in turn is
lower than CGI/12.3. Leading zeros in either the major or the
minor number MUST be ignored by scripts and SHOULD NOT be
generated by servers.</pre></p></blockquote><p>major (大), minor (小) 番号は別々の整数として扱われるので、
1桁の数以上のものであり得ることに注意して下さい。
ですから CGI/2.4 は CGI/2.13 より小さな版で、 CGI/2.13
は CGI/12.3 より小さな版です。 major・minor 番号の
頭の零を、スクリプトは無視し<strong>なければなりません</strong>が、
サーバーは生成する<strong>べきではありません</strong>。</p><blockquote><p>This document defines the 1.1 version of the CGI interface (&quot;CGI/1.1&quot;).</p></blockquote><p>この文書は CGI 界面の 1.1 版 (「CGI/1.1」) を定義します。</p><blockquote><p>Servers MUST provide this metavariable to scripts.</p></blockquote><p>サーバーはこのメタ変数をスクリプトに提供し<strong>なければなりません</strong>。   </p></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> RFC 3050 (SIP CGI/1.1) 5.5.1.4 GATEWAY_INTERFACE</figcaption><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end></p><blockquote><p>This metavariable is set to the dialect of SIP CGI being used by the
server to communicate with the script.  Syntax:</p></blockquote><p>この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メタ変数</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>と通信する
SIP CGI の種類に設定されます。構文:</p><blockquote><pre class="ABNF code">        GATEWAY_INTERFACE  =  &quot;SIP-CGI&quot; &quot;/&quot; major &quot;.&quot; minor
        major              =  1*digit
        minor              =  1*digit</pre><p>Note that the major and minor numbers are treated as separate
integers and hence each may be more than a single digit.  Thus SIP-CGI/2.4 is a lower version than SIP-CGI/2.13 which in turn is lower
than SIP-CGI/12.3.  Leading zeros in either the major or the minor
number MUST be ignored by scripts and SHOULD NOT be generated by
servers.</p></blockquote><blockquote><p>This document defines the 1.1 version of the SIP CGI interface
(&quot;SIP-CGI/1.1&quot;).</p></blockquote><blockquote><p>Servers MUST provide this metavariable to scripts.</p></blockquote><blockquote><p>For maximal compatibility with existing HTTP CGI libraries,
we want to keep this as similar as possible to the syntax
of CGI 1.1.  However, we do want it to be clear that this is
indeed SIP CGI.  Making HTTP CGI's version identifier a
substring of the SIP CGI identifier seemed like a
reasonable compromise. (The existing CGI libraries we
checked do not seem to check the version.)</p></blockquote></figure></section></body></html>