HTTP 协议中的GET 和POST 的区别
2011-05-14 10:32
447 查看
1. Http 请求由四部分组成:
•1. 请求行
•2. 消息报头
•3. 一个空行
•4. 请求正文
![](http://hi.csdn.net/attachment/201105/14/0_1305337034zLQs.gif)
2.请求行:
Method Request-Url Http-Version 回车
Method : GET,POST,Head,Put,Delete
Request-Url :请求站点
Http-Version: 1.1 or 1.0
3. GET
当我们在浏览器中输入网址并敲回车时,浏览器使用GET的方式去访问网址
Form 表单中默认的就是GET 提交方式
•GET Request-Url HTTP/1.1
Request-Url ? Name1 = value1 & Name2 =value2
由于GET 的参数放在 请求行中的,所以参数长度有限制。长度为数个KB
下面是一个在浏览器访问 www.taobao.com 的请求信息截图。
![](http://hi.csdn.net/attachment/201105/14/0_13053389216C33.gif)
再来一个附带参数GET请求的截图:
![](http://hi.csdn.net/attachment/201105/14/0_1305340229sDfh.gif)
4. POST
通常用来将表单的数据提交到Request-Url
POST Request-Url HTTP/1.1
消息报头
空行
Name1 = value1 & Name2 =value2& Name3 = value3 & Name4=value4
![](http://hi.csdn.net/attachment/201105/14/0_1305339172mu8A.gif)
POST 的参数请求正文里,所以POST 参数的长度不受限制,但受服务器处理的限制。POST 传递的参数不会在浏览器地址栏里显示,也就不会暴露传递的参数。
通常情况下,可以借助于Firefox + Firebug 来查看请求信息:
例如:用户在以POST 提交表单时,由在URL后面接了一些参数。那么这个请求是GET 请求还是POST 请求呢?服务器是把这个请求当作GET 还是POST 来对待呢?
我在淘宝网注册一个用户
![](http://hi.csdn.net/attachment/201105/14/0_1305339342777Z.gif)
提交信息后,通过Firebug 的截图,可以看到,这个请求是以POST 方式提交的。
![](http://hi.csdn.net/attachment/201105/14/0_1305339444eEX2.gif)
不过这个时候我们看到这个POST请求的URL 后面还附带了一些参数: tg=&&rdn=&timearg=u&tt=0
![](http://hi.csdn.net/attachment/201105/14/0_1305339607pQAY.gif)
不过我们看到POST 里附带的是刚才我注册时填写的一些注册信息 nihaonihao77 等。
而在
![](http://hi.csdn.net/attachment/201105/14/0_1305339680gU0m.gif)
而在“参数”标签中,我们可以看到 URL 后面附带的所有参数。
纯GET 方式提交的信息中有“头信息,响应,缓存”
带参数的GET 方式提交信息“参数,头信息,响应,缓存”
纯POST 方式提交的信息中有“头信息,POST,响应,缓存,HTML”
第三种方式提交的信息有“参数,头信息,post,响应,HTML”
从上面的比较可以看出,但一个POST 请求的URL 后面还附带了参数,那么这个请求还是POST 请求,不过浏览器还是会在URL后面附上参数。
•1. 请求行
•2. 消息报头
•3. 一个空行
•4. 请求正文
![](http://hi.csdn.net/attachment/201105/14/0_1305337034zLQs.gif)
2.请求行:
Method Request-Url Http-Version 回车
Method : GET,POST,Head,Put,Delete
Request-Url :请求站点
Http-Version: 1.1 or 1.0
3. GET
当我们在浏览器中输入网址并敲回车时,浏览器使用GET的方式去访问网址
Form 表单中默认的就是GET 提交方式
•GET Request-Url HTTP/1.1
Request-Url ? Name1 = value1 & Name2 =value2
由于GET 的参数放在 请求行中的,所以参数长度有限制。长度为数个KB
下面是一个在浏览器访问 www.taobao.com 的请求信息截图。
![](http://hi.csdn.net/attachment/201105/14/0_13053389216C33.gif)
再来一个附带参数GET请求的截图:
![](http://hi.csdn.net/attachment/201105/14/0_1305340229sDfh.gif)
4. POST
通常用来将表单的数据提交到Request-Url
POST Request-Url HTTP/1.1
消息报头
空行
Name1 = value1 & Name2 =value2& Name3 = value3 & Name4=value4
![](http://hi.csdn.net/attachment/201105/14/0_1305339172mu8A.gif)
POST 的参数请求正文里,所以POST 参数的长度不受限制,但受服务器处理的限制。POST 传递的参数不会在浏览器地址栏里显示,也就不会暴露传递的参数。
通常情况下,可以借助于Firefox + Firebug 来查看请求信息:
例如:用户在以POST 提交表单时,由在URL后面接了一些参数。那么这个请求是GET 请求还是POST 请求呢?服务器是把这个请求当作GET 还是POST 来对待呢?
我在淘宝网注册一个用户
![](http://hi.csdn.net/attachment/201105/14/0_1305339342777Z.gif)
提交信息后,通过Firebug 的截图,可以看到,这个请求是以POST 方式提交的。
![](http://hi.csdn.net/attachment/201105/14/0_1305339444eEX2.gif)
不过这个时候我们看到这个POST请求的URL 后面还附带了一些参数: tg=&&rdn=&timearg=u&tt=0
![](http://hi.csdn.net/attachment/201105/14/0_1305339607pQAY.gif)
不过我们看到POST 里附带的是刚才我注册时填写的一些注册信息 nihaonihao77 等。
而在
![](http://hi.csdn.net/attachment/201105/14/0_1305339680gU0m.gif)
而在“参数”标签中,我们可以看到 URL 后面附带的所有参数。
纯GET 方式提交的信息中有“头信息,响应,缓存”
带参数的GET 方式提交信息“参数,头信息,响应,缓存”
纯POST 方式提交的信息中有“头信息,POST,响应,缓存,HTML”
第三种方式提交的信息有“参数,头信息,post,响应,HTML”
从上面的比较可以看出,但一个POST 请求的URL 后面还附带了参数,那么这个请求还是POST 请求,不过浏览器还是会在URL后面附上参数。
相关文章推荐
- http协议请求,get和post的区别与联系
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?
- Ajax访问不断变化的session的值不同步解决方法以及HTTP协议中的GET、POST的区别
- HTTP协议请求方式:GET 和 POST区别
- HTTP 协议中GET和POST到底有哪些区别
- HTTP协议下GET与POST的区别
- HTTP协议中GET、POST和HEAD的区别?
- http协议请求,get和post的区别与联系
- HTTP协议的Get/Post区别汇总
- HTTP协议get与post方法的区别
- http协议中get和post的区别(转)
- HTTP协议中POST、GET、HEAD的区别及应用
- HTTP协议-get,put,post,delete含义与区别
- http协议中的get与post方法区别分析
- HTTP协议中POST、GET、HEAD的区别是什么?分别在什么情况下使用?(
- http协议中,get请求和post请求的区别
- HTTP协议中 POST和GET的区别和注意事项
- http协议请求,get和post的区别与联系
- HTTP协议GET和POST的区别
- HTTP 协议中GET和POST到底有哪些区别