1.get 是平安的,post 是不平安的
此处的平安,是对于服务器上的资源而言的。
get 的语义是“获取 / 失去”,get 应被用于信息的获取,所以他是幂等并且无副作用的,对于服务器的资源来说,get 并会使其产生扭转,所以说 get 是平安的,也正是因而,get 申请的后果能够被浏览器、缓存服务器缓存。
post 的语义是“追加”数据,示意可能批改变服务器上的资源的申请,每次提交 post 时,都会被认为可能批改服务器资源状态,所以缓存服务器不会缓存 post 申请返回的内容。
2.post 比 get 更平安?
此处的平安,指的是大多数时候咱们了解的平安。
对于 get 而言,向服务器传送的数据是在 url 中的,而且 get 申请会被服务器日志和浏览器记录。
post 的数据是在申请体中的,相对来说更平安一些。
然而 post 和 get 都是明文传输的,对于 post 申请,通过一些插件或者抓包同样能够看到发送的数据。。
3.get 申请的 url 有长度限度
咱们个别发送的 get 申请都是有长度限度的,然而 ,这并不是由 http 协定规定的,http 对 get 传递的数据大小(url 长度)和 post 传递的数据大小是没有限度的。
真正限度 url 长度的是浏览器和服务器,比方 chrome 在 url 过长的时候,会间接解体,另一方面服务器处理程序也会对 url 有所要求,否则通过结构一个几 M 的 url 申请,并一直的向服务器发送,这无疑会影响到服务器的性能。