get和post的区别

-- (1)GET 用于获取信息,是无副作用的,是幂等的,且可缓存 POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存

 

--(2)GET、POST 请求报文上的区别

  • GET 和 POST 只是 HTTP 协议中两种请求方式(异曲同工),而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,没有区别
  • 报文格式上,不带参数时,最大区别就是第一行方法名不同, 仅仅是报文的几个字符不同而已
  • POST 方法请求报文第一行是这样的 POST /url HTTP/1.1 GET 方法请求报文第一行是这样的 GET /url HTTP/1.1
  • 带参数时报文的区别呢? 在约定中,GET 方法的参数应该放在 url 中,POST 方法参数应该放在 body 中
  • 举个例子,如果参数是 name=Javanx, age=25。

 

-- (3)传输数据的大小与快慢 /提交方式的区别

  • GET 请求传送的数据量小4K,
  • POST理论上没有限制(大小根据php.ini配置文件设定,也可以无限大),但是最好不要超过64K; 
  • GET 响应速度快,POST相对来说慢些



-- (4)URL可见性

  • GET 参数url可见,数据安全性不好;
  • POST参数url不可见,加密传送安全性好;(原则上post要比get安全些,但是也挡不住抓包...)安全性这个问题,开放...



-- (5)后退页面的反应

  • GET 请求页面后退时,不产生影响
  • POST会重新提交请求



-- (6)缓存性

  • GET 请求可缓存,
  • POST请求不可缓存