您的位置:首页 > 理论基础 > 计算机网络

HTTP 协议中的GET 和POST 的区别

2011-05-14 10:32 447 查看
1. Http 请求由四部分组成:
•1. 请求行
•2. 消息报头
•3. 一个空行
•4. 请求正文



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 的请求信息截图。



再来一个附带参数GET请求的截图:



4. POST
通常用来将表单的数据提交到Request-Url
POST Request-Url HTTP/1.1
消息报头
空行
Name1 = value1 & Name2 =value2& Name3 = value3 & Name4=value4



POST 的参数请求正文里,所以POST 参数的长度不受限制,但受服务器处理的限制。POST 传递的参数不会在浏览器地址栏里显示,也就不会暴露传递的参数。

通常情况下,可以借助于Firefox + Firebug 来查看请求信息:

例如:用户在以POST 提交表单时,由在URL后面接了一些参数。那么这个请求是GET 请求还是POST 请求呢?服务器是把这个请求当作GET 还是POST 来对待呢?
我在淘宝网注册一个用户



提交信息后,通过Firebug 的截图,可以看到,这个请求是以POST 方式提交的。



不过这个时候我们看到这个POST请求的URL 后面还附带了一些参数: tg=&&rdn=&timearg=u&tt=0



不过我们看到POST 里附带的是刚才我注册时填写的一些注册信息 nihaonihao77 等。

而在


而在“参数”标签中,我们可以看到 URL 后面附带的所有参数。
纯GET 方式提交的信息中有“头信息,响应,缓存”
带参数的GET 方式提交信息“参数,头信息,响应,缓存”
纯POST 方式提交的信息中有“头信息,POST,响应,缓存,HTML”
第三种方式提交的信息有“参数,头信息,post,响应,HTML”

从上面的比较可以看出,但一个POST 请求的URL 后面还附带了参数,那么这个请求还是POST 请求,不过浏览器还是会在URL后面附上参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: