当浏览器发送Http请求给服务器的时候,Http请求就会有两种类型:get请求和post请求,今天就辩辩两兄弟吧。
学习过Asp.net的孩子,应该能大致体会到两者的异同吧。
通俗点说,get请求就是在浏览器发送请求的时候,将数据加到请求的地址上,一般用于第一次向服务器发送请求;而post请求就是将请求数据加到请求报文的请求体中,而且post请求时请求报文中的数据内容比get请求时的请求报文要多得多。
当然不仅仅是这些简单的区别,当我们在学习get请求和post请求的时候,要详细彻底地去学习才行啊。
第一点——get请求发生的情况:
1. 只有表单元素才能post过去,而且必须具有name属性。
2. 被disabled的表单元素不能提交过去。
3. 隐藏的表单元素可以提交过去。
4. 只有name和value属性才会被提交过去
Content-Type: application/x-www-form-urlencoded——这个点很重要。
这个在文件上传的时候会用到,用来提示需要设置特定的分隔符来分隔上传的内容。
还有......post的请求报文中有的,浏览器告诉服务器绝对不会缓存页面:
Cache-Control: no-cache
Content-Length: 387——请求体的长度
第四点——get请求和post请求获取数据方式的不同:
学习过Asp.net的孩子,应该能大致体会到两者的异同吧。
通俗点说,get请求就是在浏览器发送请求的时候,将数据加到请求的地址上,一般用于第一次向服务器发送请求;而post请求就是将请求数据加到请求报文的请求体中,而且post请求时请求报文中的数据内容比get请求时的请求报文要多得多。
当然不仅仅是这些简单的区别,当我们在学习get请求和post请求的时候,要详细彻底地去学习才行啊。
第一点——get请求发生的情况:
<!--第一种方式:使用url,进行url传参-->
第一种方式:使用url,进行url传参:<br />
<a href="03-get.ashx?wd=ajax&name=admin">test</a>
<br />
<!--第二种方式:使用js,用window.location.href进行传参-->
第二种方式:使用js,用window.location.href进行传参:<br />
<input id="txt" type="text" />
<input id="btn" type="button" value="搜索" />
<br />
<!--第三种方式:了解;使用表单进行get提交(提交的控件必须具有name属性)-->
第三种方式:了解;使用表单进行get提交(提交的控件必须具有name属性):<br />
<form action="03-get.ashx" method="get">
<input id="t1" name="wd" type="text" />
<input type="submit" value="搜索" />
</form>
第二点——post请求使用情况及几点要求:1. 只有表单元素才能post过去,而且必须具有name属性。
2. 被disabled的表单元素不能提交过去。
3. 隐藏的表单元素可以提交过去。
4. 只有name和value属性才会被提交过去
用户名:<input name="txtName" type="text" /><br />
密 码:<input name="txtPwd" type="password" /><br />
<div name="d1">
123123</div>
<br />
性别:<br />
<input type="radio" name="sex" value="male" />男
<input type="radio" name="sex" value="female" />女<br />
爱好:<br />
<input type="checkbox" name="hobby" value="cf" />吃饭
<input type="checkbox" name="hobby" value="sj" />睡觉
<input type="checkbox" name="hobby" value="ddd" />打豆豆
<br />
用户名:<input name="txtName2" type="text" /><br />
第三点——post请求报文中较get请求多的内容:Content-Type: application/x-www-form-urlencoded——这个点很重要。
这个在文件上传的时候会用到,用来提示需要设置特定的分隔符来分隔上传的内容。
还有......post的请求报文中有的,浏览器告诉服务器绝对不会缓存页面:
Cache-Control: no-cache
Content-Length: 387——请求体的长度
第四点——get请求和post请求获取数据方式的不同:
context.Request.QueryString:获取浏览器get过来的数据
context.Request.Form[]获取表单提交的数据post
备注:写于2013年9月27日