面试时候遇到的一个问题。面试官想听我说二者有什么主要区别,二者均作为请求方法,使用场合为什么不一致,在安全性上为什么get比post要弱等等。这道题其实多多少少都能说一些,但本着追其根由的想法,回来顺手查了查资料,总结如下。如果下次面试的你和我一样碰到这个问题,一定要答得美美的哟~
1、get是从服务器上获取数据,post一般通过修改表单的形式向服务器传递数据。
2、客户端内,使用get方法提交数据,这个数据通过URL提交,参数会显示在地址栏上,使用post方法,数据是放在html header内显示。
3、服务器端,对于get方式使用Request QueryString获取变量的值,对于post方法则使用Request.form方法获取提交的数据值。
4、get请求对url的长度有限制,可查的IE对长度限制为2083k,而post请求则没有此限制。
5、安全性问题。首先,在规范的定义下,get操作不会修改服务器的数据,此时get是安全的。然而,get请求会将参数显示在地址栏上,而post不会。现在浏览器大都会记住曾经输入过的url,如果这些数据是敏感数据,那么建议不要使用get请求。当然,这里的安全性其实应该算是相对的,因为被抓包后的get请求和post请求其实都是一样暴露的,哈哈哈。
关于get/post区别,就大概总结到这里。更深入的待宝宝我找着工作之后认真分析啦。希望这篇文章能对你有所帮助,喵喵喵。