博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是SCGI
阅读量:2225 次
发布时间:2019-05-09

本文共 1163 字,大约阅读时间需要 3 分钟。

/文 2008.12.29
http://blog.csdn.net/ablo_zhou
SCGI(
Simple Common Gateway Interface),简单通用网关接口。是CGI的替代协议,与FastCGI相似,但更简单。SCGI实现的效率比CGI和FastCGI更高,也更稳定。
SCGI和CGI一样,分为客户端和服务器端。客户端放在http服务器侧。如apache有mod_scgi,lighthttpd有内置的SCGI支持。目前(2008.12.29)最新版本  服务器实现是python,但放在http服务器侧的客户端实现是C语言。
协议中,ASCII字符可以用< >括起来的16进制数字表示,也可以引号""括起来的ASCII表示。
报文由报头和报体组成。报头格式:
headers ::= header*        header ::= name NUL value NUL        name ::= notnull+                        value ::= notnull*        notnull ::= <01> | <02> | <03> | ... | 
NUL = <00>
报头中不允许重复命名。首个报头必须名为"CONTENT_LENGTH",
    且其值为非空的ASCII数字序列,以十进制数形式给出了报文主体的长度。
    "CONTENT_LENGTH"报头必须总是存在,即使其值为"0"。
    同时必须始终有名为"SCGI"且值为"1"的报头。
    为了便于从CGI的迁移,标准CGI环境变量应该作为SCGI报头提供。
报头采用Netstring编码。格式为“整个报文长度字符串:报头,报体”
如下的示例:
web服务器(一个SCGI客户端)打开一个连接,发送下面字符串的拼接:

        "70:"
            "CONTENT_LENGTH" <00> "27" <00>
            "SCGI" <00> "1" <00>
            "REQUEST_METHOD" <00> "POST" <00>
            "REQUEST_URI" <00> "/deepthought" <00>
        ","
        "What is the answer to life?"
这是一个Netstring编码的报头+报体。开头的70表示报文长度70个8位。<00>表示0结尾的字符串。用“,”隔开报头和报体。
SCGI服务器发送下面的响应:

        "Status: 200 OK" <0d 0a>
        "Content-Type: text/plain" <0d 0a>
        "" <0d 0a>
        "42"

<0d 0a>表示换行。 
SCGI服务器关闭连接。
参考:
你可能感兴趣的文章
【LEETCODE】241-Different Ways to Add Parentheses
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>
【LEETCODE】20-Valid Parentheses
查看>>
【LEETCODE】290-Word Pattern
查看>>
【LEETCODE】36-Valid Sudoku
查看>>
【LEETCODE】205-Isomorphic Strings
查看>>
【LEETCODE】204-Count Primes
查看>>
【LEETCODE】228-Summary Ranges
查看>>
【LEETCODE】27-Remove Element
查看>>
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>
【LEETCODE】118-Pascal's Triangle
查看>>
【LEETCODE】119-Pascal's Triangle II
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【学习方法】如何分析源代码
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>