RESTAPI-创建的资源重定向

RESTAPI-创建的资源重定向,rest,google-chrome,http,http-headers,postman,Rest,Google Chrome,Http,Http Headers,Postman,我正在构建RESTAPI,当资源正常创建时,我返回HTTP 201 created和Location头,以指定资源所在的位置。但由于某种原因,http客户端没有重定向 我在用邮递员。有人知道这个问题吗?简而言之,位置头不足以触发客户端重定向。它必须与3xx HTTP状态代码结合使用 参考资料: 这是一种期望值与实际发生的情况不符的情况,人们认为的第一件事是“工作不正常”,正如其他评论中所建议的那样 该位置只是一个随机的标题,需要指示客户机(如Postman、curl或其他任何东西)跟随它们。

我正在构建RESTAPI,当资源正常创建时,我返回HTTP 201 created和Location头,以指定资源所在的位置。但由于某种原因,http客户端没有重定向


我在用邮递员。有人知道这个问题吗?

简而言之,位置头不足以触发客户端重定向。它必须与3xx HTTP状态代码结合使用

参考资料:


  • 这是一种期望值与实际发生的情况不符的情况,人们认为的第一件事是“工作不正常”,正如其他评论中所建议的那样

    该位置只是一个随机的标题,需要指示客户机(如Postman、curl或其他任何东西)跟随它们。大多数默认情况下不会这样做,因为这是不合理的默认

    例如,YouTube会返回一些响应的主体和位置标记。一个例子是视频上传。他们会回复你的原始元数据,因为视频是通过POST发送的,他们会推送一个位置URL,该URL也是上传视频的端点。如果客户端只是随机地重定向到这个位置,那么你的日子就不好过了


    您可以使用创建一个“序列”,我相信它可以让您从标题中获取值以重用。这也有可能

    但是它应该这样做,根据,a 201不应该这样做。我建议在上面链接的问题的答案中使用类似303的方法。201并不是在这样做,位置头应该强制重拨这里是HTTP 1.1规范关于201创建的201请求已经完成,并导致创建了新资源。新创建的资源可以由响应实体中返回的URI引用,最具体的资源URI由Location头字段给出。响应应包括一个实体,其中包含资源特征和位置列表,用户或用户代理可以从中选择最合适的。正确。它说应该包含一个位置头来指示新资源的位置。不过,它并没有说客户端应该重定向。另一方面,3xx响应规范确实对重定向有所说明。请参阅上的位置标题说明。