LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 821|回复: 7

关于浏览器向Web服务器发送的CGI请求...

[复制链接]
发表于 2003-10-8 10:02:54 | 显示全部楼层 |阅读模式
客户机向Web服务器发送请求通常有GET和POST方法.
在POST方法中,CGI参数主要由Content-Length和最后一行的实体体(Entity-Body指出;而GET方法中的CGI参数在哪呢???是不是GET和HTTP/1.1中间的那段URL中问号后面那一点?
例如:
GET /cgi-bin/srch-example?iterm1+ iterm2 HTTP/1.0
参数是不是就是iterm1+ iterm2 ?

请大家帮帮忙,我实在是有点不明白.
发表于 2003-10-8 11:29:32 | 显示全部楼层
这个涉及到URL解码,参考一下:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=55855

"iterm1+ iterm2"应该是"iterm1+iterm2",中间没有空格,实际上应该是"iterm1 iterm2"加号解码以后就是空格
 楼主| 发表于 2003-10-8 12:58:18 | 显示全部楼层
你可能误会了,我做的是Web服务器,URL解码是CGI程序要做的吧.我只是想知道服务器怎么从HTTP请求中提取给CGI程序的参数.

GET方法里面的问号后面是不是就是给CGI的参数呢;是的话,问号是不是必须的呢???
发表于 2003-10-8 13:47:09 | 显示全部楼层
问号是必须的

?前是CGI文件名
?后是参数列表
 楼主| 发表于 2003-10-8 13:58:26 | 显示全部楼层
也就是说用GET方法的话,Content-Length和最后一行的实体体(Entity-Body)不存在了呗
发表于 2003-10-8 14:34:31 | 显示全部楼层
$ENV{QUERY_STRING}就是后面的字符
发表于 2003-10-8 15:31:51 | 显示全部楼层
POST才会有CONTENT-LENGTH
POST时参数在HTTP体传送

GET时参数在HTTP头传送(第一行 )
 楼主| 发表于 2003-10-8 18:09:50 | 显示全部楼层
谢谢各位了,感激不尽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表