1

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请求,并不断的向服务器发送,这无疑会影响到服务器的性能。


forceddd
271 声望912 粉丝

一名前端爱好者。