cgi接口原理(boa服务器)-程序员宅基地

技术标签: c语言  服务器  

CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。

boa服务器和CGI程序之间是通过标准输入输出(重定向到管道)来进行数据传递的,而这个过程需要环境变量的协作方可实现。可以支持多个cgi同时运行。

1.服务器将URL指向一个应用程序
2.服务器为应用程序执行做准备
3.应用程序执行,读取标准输入和有关环境变量
4.应用程序进行标准输出

这里写图片描述

CGI数据传输方式
REQUEST_METHOD:它的值一般包括两种:POST和GET,但我们写CGI程序时,最后还要考虑其他的情况。
1.POST方法
如果采用POST方法,那么客户端来的用户数据将存放在CGI进程的标准输入中,同时将用户数据的长度赋予环境变量中的CONTENT_LENGTH。
2.GET方法
在该方法下,CGI程序无法直接从服务器的标准输入中获取数据,因为服务器把它从标准输入接收到得数据编码到环境变量QUERY_STRING(或PATH_INFO)。
3.POST与GET的区别
以 GET 方式接收的数据是有长度限制,而用 POST 方式接收的数据是没有长度限制的。并且,以 GET 方式发送数据,可以通过 URL 的形式来发送,但 POST方式发送的数据必须要通过 Form 才到发送。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_55163060/article/details/131242704

智能推荐

linux prel安装_【perl】Linux中perl模块的安装-程序员宅基地

文章浏览阅读233次。(以安装DBI和DBD::mysql为例)方法一:cpan(这个是最简单的方法,首次使用时请按照方法二安装CPAN(v2.05)这个模块)>cpan>installDBI#使用该命令,DBI安装成功,但是DBD-mysql没有安装成功,报错如下methods to determineprerequisitesFailed during this command:CAPTTOFU/DBD..._[dbd-mysql-4.023] 错误 1

oracle 操作树大全,在Oracle中的树形操作-程序员宅基地

文章浏览阅读516次。在Oracle中的树形操作在Oracle中的树形操作1.取子节点及路径(正树):select t.id ,t.code, t.name ,t.pid,SYS_CONNECT_BY_PATH(t.id,'.')||'.' as IdPathfrom tas_catalog t--where id!=110start with id=110connect by pid = prior idorder..._oracle树轴

Python实现天猫精灵OAuth2.0和语音技能配置_天猫精灵 python-程序员宅基地

文章浏览阅读2.7k次,点赞5次,收藏16次。之前用tornado实现tcp server与硬件的client的连接,以便下发指令。基于django/tornado与wifi模块,lora设备的TCP/UDP即时通讯现在考虑到天猫精灵可以语音接入。也就用tornado来实现天猫精灵的OAuth2.0.发了两天空闲的时间去摸索,终于实现成功了。我的参考文章。Java实现Aligenie天猫精灵OAuth2.0认证授权流程重要的还是..._天猫精灵 python

常见开源分布式存储系统_开源分布式文件存储系统应用举例和产品-程序员宅基地

文章浏览阅读4.7w次,点赞7次,收藏49次。系统整体对比对比说明/文件系统TFSFastDFSMogileFSMooseFSGlusterFSCeph开发语言C++CPerlCCC++开源协议GPL V2GPL _开源分布式文件存储系统应用举例和产品

移动端点击事件300ms延迟问题--safari浏览器_safari移动端下拉调分页接口延迟的问题-程序员宅基地

文章浏览阅读384次。1、禁用缩放<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>这一方案在 safari 上并不起作用,而且大大降低了移动端页面的可用性和可访问性。2、使用指针事件 (IE10+)a, button{ -ms-touch-actio..._safari移动端下拉调分页接口延迟的问题

随便推点

PostgreSQL 时区问题_postgreql to_char 时区-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏2次。PostgreSQL时区SQL 标准通过"+"或者"-"是否存在来区分timestamp without time zone和timestamp with time zone文本。因此,TIMESTAMP '2021-03-06 18:02:00'是一个timestamp without time zone,而TIMESTAMP '2021-03-06 18:02:00 +08'是一个timestamp with time zone。+08:表示 时区与全球统一时间 ..._postgreql to_char 时区

MyBatis Plus插入后返回ID主键(自增)_mybatisplus新增返回主键-程序员宅基地

文章浏览阅读1.3w次。在MyBatisPlus中添加注解信息即可//实体类(此处需要添加对应的MyBatisPlus主键信息)public class Notice{ private int noticeId; private String release_date; private String content;}//方案一:自定义SQL(自增主键) @Insert("insert into notice(release_date,content)values(#{releaseDate},#_mybatisplus新增返回主键

安卓开发报错:java.net.UnknownServiceException: CLEARTEXT communication to 192.xxx.x.x not permitt_http failed: java.net.unknownserviceexception: cle-程序员宅基地

文章浏览阅读132次。因为 Android P 是默认禁止访问http的API的 所以想要跳过https的限制需要在。在Android O 升 P (8.0升9.0)的时候,会报以下异常。的Application中添加以下内容。_http failed: java.net.unknownserviceexception: cleartext communication to 19

PTE学习作业_基础题目之日志分析-程序员宅基地

文章浏览阅读1.5k次。##被攻击者服务器为Linux:加粗样式1.基础题目之SQL注入所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过SQL注入漏洞读取/tmp/360/key文件,答案就在文件中。通过简单的测试,看到了 系统过滤了空格咱为了省事直接sqlmap用起来,先去tamper里面找找哪个空格好使答案出来了复制路径C:\Users\Admin\AppData\Local\sqlmap\output\172.16.12.1_基础题目之日志分析

固定IP和自动IP切换bat脚本_固定ip脚本-程序员宅基地

文章浏览阅读2.5w次,点赞11次,收藏28次。最近在忙项目,博客更新基本断了,gis方面学习暂无太大进展。最近公司换位置,重新分配ip,之前都没用有线,现在遇到问题是公司固定ip,家里自动分配ip,来回修改很麻烦。查了网上的有不少方案,但是试了有点小问题,后来查查才知道什么原因,直接上代码细说,把下面复制到txt文件中,并修改txt后缀为bat即可。固定ip:@echo offclscolor 0AEcho *****..._固定ip脚本

python之SQL视图_python sql创建视图-程序员宅基地

文章浏览阅读574次。python之SQL视图1 视图(View)定义2 作用3 创建视图4 删除视图5 视图注意1 视图(View)定义从若干基本表和(或)其它视图构造出来(select 出来)的表(虚表)。在创建一个视图时,只存放视图的定义,即存放动态检索数据的查询语句,不存放视图对应的数据在用户使用视图时才去求相应的数据视图被称为虚表2 作用通过选择特定数据的访问,可以给用户授予特定部分的访问权限,而不是整个表的权限;使得复杂的查询变得简单;在编写查询后,可以方便的重用它而不必知道它的基本查询细节;_python sql创建视图

推荐文章

热门文章

相关标签