fbpx
维基百科

简单通用网关接口

简单通用网关接口 (英語:Simple Common Gateway Interface,简称 SCGI) 是一种让应用程序与 HTTP 服务器交互的协议,作为 CGI 协议的替代。它类似于 FastCGI 但它被设计地更容易实现,且最重要的是,允许有很大延迟的 CGI 操作(如联系外部数据库)。

规范

客户端通过一个可靠的流流协议连接到一个 SCGI 服务器,进行 8 比特字节的传输。客户端首先发送请求,当 SCGI 服务器看到请求结束时,它会将回应发送回来并关闭连接。[note 1]

请求格式

请求包含几个头部和正文。头部的格式是:

headers ::= header* header ::= name NUL value NUL name ::= notnull+ value ::= notnull* notnull ::= <01> | <02> | <03> | … | <ff> NUL = <00> 

头部中不允许出现重复的名称。第一个头部的名称必须是 "CONTENT_LENGTH" 且值为正文的十进制长度。 "CONTENT_LENGTH" 头必须始终存在,即使它的值为 "0" 。此外还必须有一个头部的名称为 "SCGI" 且值为 "1"。为了方便从 CGI 过渡,标准的 CGI 环境变量也应该被作为 SCGI 头部提供。

头部会被编码为 netstring ,然后发送到服务器应用程序。正文将在头部后发送,它的长度由 "CONTENT_LENGTH" 头部指定。

示例

网页服务器(SCGI 客户端)打开连接并发送以下字符串拼接起来的数据:

"70:" "CONTENT_LENGTH" <00> "56" <00> "SCGI" <00> "1" <00> "REQUEST_METHOD" <00> "POST" <00> "REQUEST_URI" <00> "/deepthought" <00> "," "What is the answer to life, the Universe and everything?" 

网页应用程序(SCGI 服务器)发送以下回应:

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

然后 SCGI 服务器关闭连接。

实现 SCGI 的网页服务器

SCGI API 的语言绑定

注释

1.^ 规范文档在 2006 年 1 月 12 日的时候被发布至公有领域。

参见

  • Rack - Ruby 网页服务器接口
  • PSGI - Perl 网页服务器接口
  • WSGI

外部链接

简单通用网关接口, 英語, simple, common, gateway, interface, 简称, scgi, 是一种让应用程序与, http, 服务器交互的协议, 作为, 协议的替代, 它类似于, fastcgi, 但它被设计地更容易实现, 且最重要的是, 允许有很大延迟的, 操作, 如联系外部数据库, 目录, 规范, 请求格式, 示例, 实现, scgi, 的网页服务器, scgi, 的语言绑定, 注释, 参见, 外部链接规范, 编辑客户端通过一个可靠的流流协议连接到一个, scgi, 服务器, 进行,. 简单通用网关接口 英語 Simple Common Gateway Interface 简称 SCGI 是一种让应用程序与 HTTP 服务器交互的协议 作为 CGI 协议的替代 它类似于 FastCGI 但它被设计地更容易实现 且最重要的是 允许有很大延迟的 CGI 操作 如联系外部数据库 目录 1 规范 1 1 请求格式 1 2 示例 2 实现 SCGI 的网页服务器 3 SCGI API 的语言绑定 4 注释 5 参见 6 外部链接规范 编辑客户端通过一个可靠的流流协议连接到一个 SCGI 服务器 进行 8 比特字节的传输 客户端首先发送请求 当 SCGI 服务器看到请求结束时 它会将回应发送回来并关闭连接 note 1 请求格式 编辑 请求包含几个头部和正文 头部的格式是 headers header header name NUL value NUL name notnull value notnull notnull lt 01 gt lt 02 gt lt 03 gt lt ff gt NUL lt 00 gt 头部中不允许出现重复的名称 第一个头部的名称必须是 CONTENT LENGTH 且值为正文的十进制长度 CONTENT LENGTH 头必须始终存在 即使它的值为 0 此外还必须有一个头部的名称为 SCGI 且值为 1 为了方便从 CGI 过渡 标准的 CGI 环境变量也应该被作为 SCGI 头部提供 头部会被编码为 netstring 然后发送到服务器应用程序 正文将在头部后发送 它的长度由 CONTENT LENGTH 头部指定 示例 编辑 网页服务器 SCGI 客户端 打开连接并发送以下字符串拼接起来的数据 70 CONTENT LENGTH lt 00 gt 56 lt 00 gt SCGI lt 00 gt 1 lt 00 gt REQUEST METHOD lt 00 gt POST lt 00 gt REQUEST URI lt 00 gt deepthought lt 00 gt What is the answer to life the Universe and everything 网页应用程序 SCGI 服务器 发送以下回应 Status 200 OK lt 0d 0a gt Content Type text plain lt 0d 0a gt lt 0d 0a gt 42 然后 SCGI 服务器关闭连接 实现 SCGI 的网页服务器 编辑Apache HTTP Server Cherokee Lighttpd Mathopd 页面存档备份 存于互联网档案馆 通过非官方补丁 带 ISAPI SCGI 扩展 页面存档备份 存于互联网档案馆 的微软網際網路資訊服務 Nginx Avuna HTTPDSCGI API 的语言绑定 编辑Cobra Haskell Java 通过 SCGI connector 页面存档备份 存于互联网档案馆 Lisp Perl 通过 SCGI 包 页面存档备份 存于互联网档案馆 PHP Python Racket 通过 scgi Web Server HTTP SCGI and CGI 页面存档备份 存于互联网档案馆 Ruby Scheme Tcl Nim注释 编辑1 规范文档在 2006 年 1 月 12 日的时候被发布至公有领域 参见 编辑Rack Ruby 网页服务器接口 PSGI Perl 网页服务器接口 WSGI外部链接 编辑SCGI specification 页面存档备份 存于互联网档案馆 netstrings specification 页面存档备份 存于互联网档案馆 Ether Ada SCGI library 页面存档备份 存于互联网档案馆 Original Ada SCGI interface 页面存档备份 存于互联网档案馆 Apache SCGI modules and Python SCGI interface 页面存档备份 存于互联网档案馆 Perl SCGI interface 页面存档备份 存于互联网档案馆 Haskell SCGI package 页面存档备份 存于互联网档案馆 Nginx SCGI Module 页面存档备份 存于互联网档案馆 Tcl SCGI module IIS SCGI extension 页面存档备份 存于互联网档案馆 Guile Scheme library 取自 https zh wikipedia org w index php title 简单通用网关接口 amp oldid 74902638, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。