0

我正在为 Web 服务构建一个 API,我一直在问自己。想象有一个 API 调用来创建一个新项目,就像/api/project/create.json它重定向(使用 a 302 Redirect)到新创建的项目,比如说/api/project/123.json。如果第一个请求是通过 POST 发送的,那么在哪里指定,第二个 URI 必须用 GET 检索?

是否有任何 RFC 声明,重定向始终必须跟随 GET?还是仅更改 URL 并将相同的 POST 请求再次发送到新 URL 是有效的客户端行为?

想象一下,我有一个旧的 API 服务器和一个新的 API 服务器,我想将客户端的 POST-Request 重定向到新的 API-URL。我需要做什么?

4

1 回答 1

1

如果第一个请求是通过 POST 发送的,那么在哪里指定,第二个 URI 必须用 GET 检索?

无处。

是否有任何 RFC 声明,重定向始终必须跟随 GET?还是仅更改 URL 并将相同的 POST 请求再次发送到新 URL 是有效的客户端行为?

不,实际上 RFC (RFC 2616) 声明更改 301 和 302 上的方法名称是不正确的。

另请参阅http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-19.html#status.3xx了解更多信息。

想象一下,我有一个旧的 API 服务器和一个新的 API 服务器,我想将客户端的 POST-Request 重定向到新的 API-URL。我需要做什么?

我建议使用状态码 307(因为该状态码周围的浏览器错误较少)。

于 2012-04-11T12:13:43.143 回答