用c语言编写CGI程序问题
客户端浏览器有对话框用户在对话框内输入一些文字或者英文发送后请问CGI程序如何接收这些文字呢保存在哪里了呢??用GET还是POSTGET的话QUERY_STRING保存的...
客户端浏览器有对话框 用户在对话框内输入一些文字或者英文 发送后 请问CGI程序如何接收这些文字呢 保存在哪里了呢??用GET还是POST GET的话QUERY_STRING保存的是浏览器地址后的参数???POST的话stdin也是么??那么输入的内容保存在哪里了呢 还有输入格式是html文本格式还是普通文本格式呢??求解答 谢谢各位了
展开
1个回答
展开全部
唔.. 问题很好, 但得说上几堂课才能答得完, 这里先给你一些概念做为参巧, 你得再从各个单元中再发掘一下.
首先, 客户端发送请求後, 接的不是 cgi , 而是 web server, web server 会将发送的资料, 连同环境变数, 打包变成 "参数" 一拼 "发送" 给 cgi 程序.
"发送" 有多种形式, 要视乎 cgi 程序在 shell 时本身怎样接收 "参数" , 例如 Perl 会以 Command line 的形式, PHP 会以 | ( pipe ) 的形式. 至於 c 我就不知道了.
QUERY_STRING保存的是浏览器地址后的参数是对的. 而 QUERY_STRING 亦只会从 GET 的 request 而来. 即是如果 html 的 method 不是 get 的话, 就不会有 query_string
POST 的时候你要 read STDIN 才能得到数据是对的. 但留意 POST 有两种, 默认的是文字, 就 read STDIN 可以, read 到的其实也是跟 query_string 一样的格式 ( action=doSome&from=id&... ) 从 & 符号中得到数据与数据之间的分割. 但另一种是 multi part form data. 如果表单中有档案上传, 就会用上这种形式. 首先你就要留意收到的数据是 binary data, 而里面的分割是 256 个字符组成的 boundary line
文本和非文本的分别只在於告诉 file reader 不要误读 eof , 就当是文件完结, 因为非文本格式中会用得 eof 作为档案的内容. 故此, html 本身也是普通文本字串.
所有数据只是一气呵成的丢到下级, 所以并不会"保存"下来.
进的时机就是由 SERVER 丢到你的 CGI 程序的那一刻开始;
到你的 CGI 完结的时候, 数据就会消失
首先, 客户端发送请求後, 接的不是 cgi , 而是 web server, web server 会将发送的资料, 连同环境变数, 打包变成 "参数" 一拼 "发送" 给 cgi 程序.
"发送" 有多种形式, 要视乎 cgi 程序在 shell 时本身怎样接收 "参数" , 例如 Perl 会以 Command line 的形式, PHP 会以 | ( pipe ) 的形式. 至於 c 我就不知道了.
QUERY_STRING保存的是浏览器地址后的参数是对的. 而 QUERY_STRING 亦只会从 GET 的 request 而来. 即是如果 html 的 method 不是 get 的话, 就不会有 query_string
POST 的时候你要 read STDIN 才能得到数据是对的. 但留意 POST 有两种, 默认的是文字, 就 read STDIN 可以, read 到的其实也是跟 query_string 一样的格式 ( action=doSome&from=id&... ) 从 & 符号中得到数据与数据之间的分割. 但另一种是 multi part form data. 如果表单中有档案上传, 就会用上这种形式. 首先你就要留意收到的数据是 binary data, 而里面的分割是 256 个字符组成的 boundary line
文本和非文本的分别只在於告诉 file reader 不要误读 eof , 就当是文件完结, 因为非文本格式中会用得 eof 作为档案的内容. 故此, html 本身也是普通文本字串.
所有数据只是一气呵成的丢到下级, 所以并不会"保存"下来.
进的时机就是由 SERVER 丢到你的 CGI 程序的那一刻开始;
到你的 CGI 完结的时候, 数据就会消失
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |