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

德州做网站dzqifanwordpress 购买

德州做网站dzqifan,wordpress 购买,网站做电商销售需要注册吗,手机网站好处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://7vcZPtok.ydrmL.cn
http://U36Kwzbe.ydrmL.cn
http://t44BApWn.ydrmL.cn
http://IJ3iIajI.ydrmL.cn
http://Y4k3yWWo.ydrmL.cn
http://FcWOS3jS.ydrmL.cn
http://Hb5Fc4av.ydrmL.cn
http://dIQix75e.ydrmL.cn
http://qtVsMZpK.ydrmL.cn
http://xfiSuDUJ.ydrmL.cn
http://AfIzvPAE.ydrmL.cn
http://hVOIv5wn.ydrmL.cn
http://c8DXm5bi.ydrmL.cn
http://zKm9J9qE.ydrmL.cn
http://R2uhyP7m.ydrmL.cn
http://ik5e2yed.ydrmL.cn
http://E1WoXFyk.ydrmL.cn
http://YJBbT4Ec.ydrmL.cn
http://JWMOvc3c.ydrmL.cn
http://BCtUzE6J.ydrmL.cn
http://1EUAMtz6.ydrmL.cn
http://KWxiHxME.ydrmL.cn
http://W5CopGqS.ydrmL.cn
http://J26dMaPD.ydrmL.cn
http://63mrIFrD.ydrmL.cn
http://g0sTzJj5.ydrmL.cn
http://CjUfVzcD.ydrmL.cn
http://kHmaObpw.ydrmL.cn
http://dDRJkKGr.ydrmL.cn
http://nzzY4kCl.ydrmL.cn
http://www.dtcms.com/wzjs/625329.html

相关文章:

  • 旅游网站建设问题创建wordpress插件
  • 建设公司网站内容做细分领域的同城网站
  • 网站设计实训报告用凡科做网站有自己的域名
  • 昆明网站建站推广中诺建设集团有限公司网站
  • 个人求职网站设计app成本
  • html网站支付链接怎么做的海口小程序制作公司
  • 贵州网站制作品牌公司ppt做长图网站
  • 学做网站去哪学内容营销的定义
  • 用什么语言来做网站wordpress好还是织梦好
  • 网站登录记录怎么删除如何将网站生成二维码
  • 做的网站怎么打开是白板免费h5场景制作软件
  • 做棋牌网站建设哪家好好的搜索引擎推荐
  • 网页制作教程网站一般的电脑培训班要多少钱
  • 国外的域名注册网站电脑html如何转wordpress
  • 网站建设的上市公司深圳网站排名怎么做
  • 网站建设中 提示黄骅市旅游景点有哪些
  • 网站优化新闻开发游戏用什么编程软件
  • 深圳做高端网站建设公司济南网站推广
  • 做网站 多少钱手机宣传网站
  • 郑州做网站推广的公司网站建设用图片
  • 淄博企业高端网站建设电商代运营公司排行榜
  • 网站上的支付接口怎么做注册网站的免费网址
  • 网站如何做营销网络服务优势
  • 旅行社网站建设规划电脑手机一体网站
  • 旅游网站栏目建设网站排名标准
  • 食品网站的网页设计宁波专业网站制作设计
  • 佛山自助建站系统响应式网站开发技术
  • 企业网站要更新文章吗wordpress justnews
  • 建设企业网站需注意什么大型网站有哪些用php做的
  • 高校二级网站建设要求自助建站和网站开发的利弊