CGI(Common Gateway Interface)


CGIのいくつかの知識点
2012-2-24 11:31 by軒脈刃、392読み、 1 コメント、  コレクション、  編集
CGI(Common Gateway Interface)は、ウェブサーバとCGIスクリプトを共同でクライアントの要求を処理できるようにするプロトコルです.このプロトコル定義ドキュメントはhttp://www.ietf.org/rfc/rfc3875です.
Webサーバは接続、データ伝送、ネットワークインタラクションなどを管理する.CGI脚本は具体的な業務ロジックを管理する.
Webサーバの機能は、クライアント要求(HTTP Request)をCGIスクリプト要求に変換し、スクリプトを実行し、次にCGIスクリプトの応答をクライアントの応答(HTTP Reponse)に変換することである.
CGIのスクリプト要求には、メタデータと関連するメッセージボディがあります.
メタデータを要求
含める:
                               "AUTH_TYPE" | "CONTENT_LENGTH" |
                           "CONTENT_TYPE" | "GATEWAY_INTERFACE" |
                           "PATH_INFO" | "PATH_TRANSLATED" |
                           "QUERY_STRING" | "REMOTE_ADDR" |
                           "REMOTE_HOST" | "REMOTE_IDENT" |
                           "REMOTE_USER" | "REQUEST_METHOD" |
                           "SCRIPT_NAME" | "SERVER_NAME" |
                           "SERVER_PORT" | "SERVER_PROTOCOL" |
                           "SERVER_SOFTWARE" | scheme |
                           protocol-var-name | extension-var-name
 
 
AUTH_TYPE             ,  basic,Digest 
CONTENT_LENGTH         
CONTENT_TYPE         
GATEWAY_INTERFACE     CGI   ,  CGI/1.1
PATH_INFO     CGI     
PATH_TRANSLATED        cgi   ,   CGI     ,  
http://somehost.com/cgi-bin/somescript/this%2eis%2epath%3binfo
   PATH_INFO  /this.is.the.path;info
QUERY_STRING     (GET            )
REMOTE_ADDR      ip  
REMOTE_HOST          
REMOTE_IDENT
REMOTE_USER         
REQUEST_METHOD     ,  GET/POST/PUT/DELETE 
SCRIPT_NAME          ,   /test/test.php
SERVER_NAME WEB      
SERVER_PORT WEB      
SERVER_PROTOCOL WEB              
SERVER_SOFTWARE       response Web      ,  nginx/1.0.6
 
  

请求消息体

                ,      stdin    script 
 
関連の知識点
パラメータ転送
       web      http   ,  http     GET POST    。             ?
  GET  ,CGI         QUERY_STRING     。
POST ?Web      stdin(    ) CGI      。            CONTENT_LENGTH  。
   HTTP  ,QUERY_STRING  http GET  ,stdin  HTTP BODY  
 
  
     nginx+php       nginx(web   )     cgi   php-cgi ,  php-cgi    php,      cgi response   nginx。nginx     http        。
 
  
        ,cgi     ,               ,  ,         。  web           web   ,            cgi 。   cgi              cgi    。
 
  
       ,cgi              ,cgi      web     , nginx,apache   web               。          。 nginx+cgi+php          php-cgi  ,                 deamon        ,   fork    cgi  。
 
多重化
      ,cgi          ,     ,fastcgi           。              。           。      cgi scgi(simple cgi),scgi fastcgi  ,            (     simple)。scgi     c  ,    perl  。
     nginx+cgi+php  ,     php $_SERVER           cgi    ,     nginx             。    cgi             ,       cgi       tcp      ,              ,           。         ,   cgi      (  6w           )。
 
安全
     cgi    ,          bug:http://www.laruence.com/2010/05/20/1495.html
 
  cgi           ?           cgi ?              127.0.0.1 ip   ,          
参考文献:
http://www.lyinfo.net.cn/webclass/cgi/default.htm
http://blog.csdn.net/ablo_zhou/article/details/3634954
http://www.ietf.org/rfc/rfc3875
本論文は署名-非商業的使用3.0ライセンス契約に基づいて発表し、転載、演繹を歓迎するが、本明細書の署名葉剣の峰を保持しなければならない.http://www.cnblogs.com/yjf512/)を使用してはならず、商業目的に使用してはならない.何か質問や授権に関する協議があれば、私に連絡しますをお願いします.
カテゴリ: 
オープンソース研究