[1] CGI のメタ変数 REQUEST_METHOD
は、
クライアントからの要求におけるメソッドを表します。
[410] 値の構文は次のように定義されています >>407。 REQUEST_METHOD = method
method = "GET" | "POST" | "HEAD" | extension-method
extension-method = "PUT" | "DELETE" | token
[411] 鯖はクライアントの指定したメソッドをメタ変数の値として設定しなければなりません >>407。
[417] CGIスクリプトは適当なメソッドだけ実装することにしてもよく、その場合未対応のメソッドは誤りとして拒絶するべきです >>416。
[414] CGIスクリプトの実装はナイーブなものが多く、 REQUEST_METHOD
を無視したり、特定のものと等しいかどうかしかチェックしていなかったりします。
405
を返すべきなのでしょうが。[406] CGI/1.1 draft-3 6.1.13. REQUEST_METHOD
The REQUEST_METHOD metavariable is set to the method with which the request was made, as described in section 5.1.1 of the HTTP/1.0 specification [3] and section 5.1.1 of the HTTP/1.1 specification [8].
[2] REQUEST_METHOD
メタ変数は要求が行われた際の方式が設定されます。
>The method is case sensitive. CGI/1.1 servers MAY choose to process some methods directly rather than passing them to scripts.
[6] 方式は大文字・小文字を区別します。 CGI/1.1 サーバーは幾つかの方式をスクリプトに渡さずに直接処理することを選んでも構いません。
This variable is specific to requests made with HTTP.
Servers MUST provide this metavariable to scripts.
[8] サーバーはこのメタ変数をスクリプトに提供しなければなりません。
[408] RFC 3050 (SIP-CGI/1.1) 5.5.1.11 REQUEST_METHOD
If the message triggering the script was a request, the REQUEST_METHOD metavariable is set to the method with which the request was made, as described in section 4.2 of the SIP/2.0 specification [2]; otherwise not defined.
スクリプトの引き金となったメッセージが要求であるなら、
REQUEST_METHOD
メタ変数は要求が作られた method
を SIP/2.0 仕様書の
4,2節に説明された通りに設定しなければなりません。
そうでなければ定義されません。
- REQUEST_METHOD = sip-method
- sip-method = "INVITE" | "BYE" | "OPTIONS" | "CANCEL" | "REGISTER" | "ACK" | extension-method
- extension-method = token
Note that ACK is usually not appropriate for the SIP CGI 1.1 environment; however, see section 5.11. The implications of REGISTER in the CGI context are discussed in section 5.9, and CANCEL is discussed in section 5.10. A SIP CGI 1.1 server MAY choose to process some methods directly rather than passing them to scripts.
なお、 ACK
は通常 SIP CGI 1.1
環境には適当ではありません。しかし、
5.11節をみて下さい。
CGI の文脈における REGISTER
の暗示については5.9章で、
CANCEL
については5.10章で扱っています。
SIP CGI 1.1 サーバーは幾つかの method をスクリプトに渡さずに直接処理することを選んでも構いません。
Servers MUST provide this metavariable to scripts if the triggering message was a request.
サーバーは、引き金となったメッセージが要求であればこのメタ変数を提供しなければなりません。
[409] >>9 HTTP も仕様上は区別することになっているようです。
GET
を実装しておけば HEAD
は適当に処理してくれます。GET
などが〜という表現になっている一方、 [COAR 03] では上記のように、この変数は HTTP 特有と述べています。それでも >>8 で必ず提供するよう要求していますから、 HTTP 以外では空の値になるのでしょうか?OPTIONS
と TRACE
は自前で処理しますが、それ以外の値はチェックせずに CGI Script に渡します。405
Metehod Not Available を返すように CGI Script を実装しておかないと、不正な応答を返してしまう恐れがあります。REQUEST_METHOD
や SSI から呼ばれた CGI での同メタ変数が任意の method について得られるかは不明です。