当前位置: 首页 > wzjs >正文

德州做网站dzqifanwordpress注册邮件怎么设置

德州做网站dzqifan,wordpress注册邮件怎么设置,中国新闻社副总编辑级别,做ui设计工资一般多少CGI(Common Gateway Interface)不涉及具体的网络通讯报文格式,它定义的是 Web服务器与外部程序之间的数据交互方式,而不是像HTTP或FastCGI那样的二进制协议。下面分几个方面详细说明: 1. CGI 的交互方式(非…

CGI(Common Gateway Interface)不涉及具体的网络通讯报文格式,它定义的是 Web服务器与外部程序之间的数据交互方式,而不是像HTTP或FastCGI那样的二进制协议。下面分几个方面详细说明:


1. CGI 的交互方式(非报文协议)

CGI 的核心是 通过环境变量和标准输入/输出(stdin/stdout)传递数据,不依赖特定的二进制报文结构。具体流程:

(1) Web服务器传递给CGI程序的数据

  • 环境变量(由服务器设置,CGI程序读取):

    • REQUEST_METHOD:HTTP方法(GET/POST等)。

    • QUERY_STRING:URL中的查询参数(如?name=foo)。

    • CONTENT_TYPE:请求体的MIME类型(如application/json)。

    • CONTENT_LENGTH:请求体的字节长度。

    • 其他HTTP头会转为HTTP_*格式(如HTTP_USER_AGENT)。

  • 标准输入(stdin)

    • 如果是POST/PUT请求,请求体会通过stdin传递给CGI程序,需根据CONTENT_LENGTH读取指定字节数。

(2) CGI程序返回给服务器的数据

  • 标准输出(stdout)

    • CGI程序必须 先输出HTTP头,后跟响应体,用空行分隔(\n\n)。

    • 示例:

      print("Content-Type: text/html\n")  # HTTP头
      print()                            # 空行
      print("<h1>Hello CGI</h1>")        # 响应体

2. 对比真正的“报文协议”(如FastCGI)

CGI 不定义任何二进制或文本报文格式,而其他协议(如FastCGI、SCGI)会严格规定报文结构:

协议是否定义报文格式示例报文结构用途
CGI❌ 否无,靠环境变量和stdin/stdout通用但性能低
FastCGI✅ 是二进制报文(类型+请求ID+内容长度等)高性能持久化连接
SCGI✅ 是文本协议(CONTENT_LENGTH␀数据...简化版FastCGI
HTTP✅ 是GET /path HTTP/1.1␍␊Host:...客户端与服务器通信

FastCGI 报文示例(二进制协议)

# 请求头报文(16字节固定格式)
typedef struct {unsigned char version;     // 协议版本unsigned char type;        // 报文类型(如BEGIN_REQUEST)unsigned char requestId[2];// 请求IDunsigned char contentLength[2]; // 内容长度unsigned char paddingLength;    // 填充长度unsigned char reserved;    
} FCGI_Header;# 实际数据(如HTTP参数)跟在报文头后

3. 为什么CGI不需要报文格式?

  1. 简单性:CGI设计初衷是跨语言通用,直接利用操作系统的标准输入/输出和环境变量。

  2. 无持久连接:每次请求结束进程退出,无需维护复杂状态。

  3. 文本友好:HTTP本身是文本协议,CGI直接复用其特性(如环境变量映射HTTP头)。


4. 如果想看CGI的“实际数据流”

虽然CGI没有报文,但可以通过抓包或日志观察数据流:

(1) 客户端发送的HTTP请求

POST /cgi-bin/script.py HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 12name=foo&age=20

(2) Web服务器传递给CGI程序的数据

  • 环境变量

    REQUEST_METHOD=POST
    CONTENT_TYPE=application/x-www-form-urlencoded
    CONTENT_LENGTH=12
    QUERY_STRING=  # GET请求时才有
  • 标准输入(stdin)

    name=foo&age=20

(3) CGI程序返回的响应

  • 标准输出(stdout)

    Content-Type: text/html<html>Hello, foo!</html>

5. 总结

  • CGI不定义通讯报文,而是通过 环境变量 + stdin/stdout 传递数据。

  • 真正的报文协议(如FastCGI/SCGI)会严格规定二进制或文本格式,适合高性能场景。

  • CGI的劣势:每次请求启动新进程,性能低下,适合历史学习或简单脚本,现代Web开发已转向FastCGI(PHP-FPM)、WSGI(Python)等方案。

http://www.dtcms.com/wzjs/834256.html

相关文章:

  • 网站建设列入管理费用说明科目微信小程序网站模板
  • 找兼职工作在家做正规网站织梦网站怎么做投票
  • 企业做网站的必要性做电影网站用什么虚拟主机
  • 东莞网站优化方法做网站建站点
  • 1+x数字营销网站网络营销的手段有哪些
  • 石岩企业网站建设如何建立微信群
  • 公司高端网站建设网页制作教程 基础
  • 毕设电商网站设计网页制作相关的工具软件
  • 找个美工做淘宝网站需要多少钱成都住建局官网官网
  • 手机网站整站下载徐州网站建设制作工作室
  • 电子商务网站加盟卖汽车怎么做网站
  • 深圳大型网站开发建设网站的新闻
  • 做微信充值网站建设银行北京市财满街分行网站
  • 网站建设优化服务行情公司邮箱地址怎么填写
  • 网站建设的秘诀自己本地可以做网站服务器
  • 做网站需要什么设备如何做flash游戏下载网站
  • 必须做网站等级保护土特产网站建设状况
  • 网站集约化建设项目内容做网站去哪里可以找高清的图片
  • 物流网站的建设方案用幽默的语言来形容网站开发
  • 营销策划案seo 网站 制作
  • 做网站用备案吗自定义手机网站建设
  • 深圳做网站哪家便宜中铁建设集团门户网登录官网查询
  • 浙江省建设厅网站资质迁移资源网站模板下载
  • 二级域名对网站帮助昆明市门户网站
  • 网站关键词可以添加吗网站设计招标评标标准及办法
  • 抢购网站源码郑州商城网站开发
  • 七宝网站建设专门做代工产品的网站
  • 比较好的网站建设做调查问卷换赏金的网站
  • 阿里云虚拟主机多网站吗页游大全
  • 对网站建设在电子商务中的看法网站建设学校网站