web服务器与浏览器交互表单

通常来说有两种方法:GET和POST,下文的例子是在thttpd firefox3.6测试的,用shell编写cgi程序。
1、GET与POST比较
GET方法:它是作为url部份数据发送,也就是在浏览器可以看得到数据,而且有长度限制。所以GET是不安全的。
wirkshark抓GET包如下:
GET /cgi-bin/abc.cgi?%E5%A7%93%E5%90%8D=yuanzhenhai&%E5%AF%86%E7%A0%81=123456&%E6%B5%8B%E8%AF%95=123456&%E6%B5%8B%E8%AF%95=123456&%E6%B5%8B%E8%AF%95=123456 HTTP/1.1
POST方法:它是作为Content-Length 后面的数据发送,没有长度限限制。
wirkshark抓POST包如下:
POST /cgi-bin/abc.cgi HTTP/1.1
Host: 127.0.0.1
/*  。。。省略。。。   */
Content-Length: 134
 
%E5%A7%93%E5%90%8D=yuanzhenhai&%E5%AF%86%E7%A0%81=123456&%E6%B5%8B%E8%AF%95=123456&%E6%B5%8B%E8%AF%95=123456&%E6%B5%8B%E8%AF%95=123456


2、GET示例:
<HTML>
<HEAD><TITLE>thttpd is running</TITLE></HEAD>
<BODY BGCOLOR="#99cc99" TEXT="#000000" LINK="#2020ff" VLINK="#4040cc">

<H3>get</H3>

<P>
it's get test.
<P>

   <form method=get action="/cgi-bin/abc.cgi">
	name <input type=text name=姓名><br>
	password <input type="password" name="密码" ><br>
	password <input type="text" name="测试" ><br>
	password <input type="text" name="测试" ><br>
	password <input type="text" name="测试" ><br>
   <input type="submit">
   </form>

</BODY>
</HTML>



3、POST示例:
<HTML>
<HEAD><TITLE>thttpd is running</TITLE></HEAD>
<BODY BGCOLOR="#99cc99" TEXT="#000000" LINK="#2020ff" VLINK="#4040cc">

<H3>post</H3>

<P>
it's post test.
<P>

   <form method=post action="/cgi-bin/abc.cgi">
	name <input type=text name=姓名><br>
	password <input type="password" name="密码" ><br>
	password <input type="text" name="测试" ><br>
	password <input type="text" name="测试" ><br>
	password <input type="text" name="测试" ><br>
   <input type="submit">
   </form>
</BODY>
</HTML>



4、abc.cgi:

#!/bin/sh

echo "Content-type:text/html"
echo ""
echo "<HTML>"
echo "<HEAD><TITLE>abc.cgi test </TITLE></HEAD>"

echo "<BODY>"

if [ "$REQUEST_METHOD" = "POST" ] ; then
QUERY_STRING=`cat -`  # cat 如果[文件]缺省,或者[文件]为 - ,则读取标准输入。
echo "post"
echo "<br>"
fi

if [ "$REQUEST_METHOD" = "GET" ] ; then
echo "get"
echo "<br>"
fi

echo $QUERY_STRING 

echo "</BODY>"

echo "</HTML>"





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值