首页 > 试题广场 >

HTTP协议中的POST和GET有何区别?

[问答题]
HTTP协议中的POST和GET有何区别?
HTTP 定义了与服务器交互的不同方法,最常用的有4种,Get、Post、Put、Delete,如果我换一下顺序就好记了,Put(增),Delete(删),Post(改),Get(查),即增删改查,下面简单叙述一下:
1.Get, 它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的。
2. Post,它是可以向服务器发送修改请求,从而修改服务器的。

1)GET提交的数据比较少,最多1024B,因为GET数据是附在URL之后的,而URL则会受到不同环境的限制的,比如说IE对其限制为2K+35,而POST可以传送更多的数据(理论上是没有限制的,但一般也会受不同的环境,如浏览器、操作系统、服务器处理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。
2)Post的安全性要比Get高,因为Get时,参数数据是明文传输的,而且使用GET的话,还可能造成Cross-site request forgery攻击。而POST数据则可以加密的,但GET的速度可能会快些。
总结如下表:
操作方式
  GET  
POST
数据位置
  HTTP包头
  HTTP正文
明文密文
  明文
  可明可密
数据安全
较为不安全(因为它是明文)
  安全
长度限制
长度较小( 1024B)
支持较大数据传输
应用场景
查询数据
修改数据
编辑于 2015-05-20 10:14:58 回复(0)
主要的区别是GET请求的数据最多不能超过1024个字节,而POST请求的数据是没有限制的。
发表于 2015-05-20 19:33:04 回复(1)
GET:主要用于简单的获取页面信息,同时也可以包含一些特殊的请求信息(如 提交用户名、密码之类的)。如果有,则将它附着在URL尾部,以?隔开,空格转化为"+"。实际上是将其放在HTTP请求协议头部,而且这些数据最多不能超过1024个字节.

POST:主要用于根据特殊条件请求页面信息。这些内容将被放入HTTP请求协议的实体部分,而且大小没有限制。

发表于 2015-05-20 14:52:45 回复(0)
简单来说:GET请求会将参数在浏览器地址栏中以?key1=value1&key2=value2...的键值对形式明文发送至服务器,相对于POST而言不是很安全而且大小受到限制;POST请求则是在HTTP请求体中附上数据,相对GET请求较为安全,另外请求体大小默认没有限制。不过GET请求相对于POST而言较为快速,在异步传输数据(如AJAX)时使用较广。同时,GET请求的参数会被浏览器编码为默认格式,当请求参数中含有中文时,POST的请求体则不会受到太大影响。GET请求主要用于获取信息,一般不会修改服务器资源的状态,对于同一个URL请求的资源来说,结果应该是相等的(幂等);POST请求用于提交数据,如果不做相应的处理,可能会发生安全问题(如表单数据提交时插入<script>脚本等)。
发表于 2015-05-20 06:31:57 回复(0)
Get和POST都差不多,但那是GET比较安全,POST的话可以修改
发表于 2015-01-23 23:28:53 回复(0)