视频6分50秒左右,post幂等的问题
来源:2-10 HTTP相关_2

莨菽菽
2020-04-03
老师好:
讲解幂等时候,你的原话是:
post会向数据库提交数据,会改变数据库的数据,而且每次获得的结果都可能不一样,因为post请求是作用于上一层的url上的,每一次请求都会添加一份新的资源,而put方式是幂等的
我在你另外一个回答里面找到你的回复
但是上面我还是有些不解
我的问题是:
1.每一次请求都会添加一份新的资源怎么理解?一个post重复提交,提交的数据应该是一样的吧?
2.两次相同的Post请求为什么会在服务器创建两份资源?因为是不同的socket申请么?
3.它们具有不同的URI?相同的POST请求uri是一样的吧?
4.作用于上一级url意思是每次都重新申请了整http://www.forum.com/articles,虽然本身只想提交请求?但是如果是ajax请求提交Post,是不是就不算作用于上一级url了?
5.PUT和POST的应用场景有什么区别?
问题有点多,麻烦老师解答下,谢谢
1回答
-
同学好,
咱们这里讨论的http是指restful风格的接口规范,在restful规范里面,post的语义是指新增一个没有id的资源,既然如此,即使两次提交的数据是一样的,也会在服务端创建两个id,所以这里咱们说restful 风格的post不是幂等的
URI是指统一资源标识符,可以等效表示资源的id,所以两次重复的post 会有不同的uri,因为都新增了资源
这是我们在遵循严格的restful规范的情况下,put指更新一个资源。或新增一个含 id 资源(如果 id 不存在); post指新增一个没有id的资源。 当然,我们在现实中可能大部分代码不会严格遵守restful的规范,所以才会有你说的这种情况,我们用接口支持post重入等
012020-04-05
相似问题