问题:get和post请求它们的区别是安全和不安全的,那么到底哪个是安全,那个是不安全的,还有这个安全是相对于什么来说的?
解决:
一、原理区别
1.一般我们在浏览器输入一个网址访问网站都是GET请求。
HTTP定义与服务器交互方法:get,post,put,delete,head。
其中GET和HEAD被称为安全方法。
为什么会被称为安全方法?
因为get和head的HTTP请求不会产生动作。
不会产生动作的体现是什么?
get和head的HTTP请求不会在服务器上产生任何结果。
那么安全方法是不是什么动作都不产生?
这里的安全方法仅仅指不会修改信息。
2.根据HTTP规范,POST可能会修改服务器上的资源的请求。比如开源中国的博客,用户提交一篇博文
或者读者提交评论是通过POST请求来实现的,因为在博文或者评论提交后资源(即某个页面)不同了,或者说资源被修改了,这些便是"不安全方法"。
二、表现形式区别
1.安全性:POST的安全性比GET的高。这里的安全是真正的安全,上面的安全仅仅是不修改服务器的数据。
举例:在用户登录时,通过GET请求,用户名和密码都会暴露在URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。
总结:对于服务器来说get请求是安全的,post请求是不安全的。对于用户来说,get请求是不安全的,post请求是安全的。