之前面试有问到:get和pose的区别,我说:项目中一般用post就足够了。
但是了解了es的操作,发现里面对restful用的淋漓尽致,其实get和post还有一种区别是:幂等性。
比如:get,无论多少次,那么都是幂等的,每次都是一样的结果。
但是post则不是。
----------------------20221010----------
这次彻底搞清楚了get和post的区别了。
get:具有幂等性,因为它是客户端请求客户端,它想要什么。 服务器进行一定的逻辑处理,将想要的数据告诉客户端,因此不会对服务器数据进行任何的修改,理论上来说:每次请求获得的数据都是一样的,这就是幂等性。
post:
则是客户端提交数据给服务器,服务器进行验证后,存储到数据库中,比如:登录时,客户端输入用户名和密码进行登录。注册完一次账号后,下一次肯定注册不成了,因此不具有幂等性。由于服务器可以执行逻辑进行校验,因此相对来说也是安全的。
get和post也可以从安全性的角度是思考他们的区别,get是绝对安全的。post则是:相对安全的。
-------------下面是请教QA后,给我讲的get和post的区别,哈哈!!!-----------
QA因为使用postman所以对这这2个体会很深:
get 完全是明文的,不安全。
post的话,可以把要提交的东西放到body中,body加密,从而保证安全。这样子说:post是可以完全实现get的功能的。只不过为了明确表示目的,最好不要这样子。