HTTP POST 参数顺序/REST url

标签 http rest post upload parameters

假设我正在通过 POST HTTP 请求上传一个大文件。

我们还假设我有另一个参数(文件除外)命名文件正在更新的资源。

资源不能不是 URL 的一部分,就像您使用 REST 那样(例如 foo.com/bar/123)。假设这是技术和政治原因的结合。

如果资源名称无效,或者 IP 地址和/或登录用户无权更新资源,服务器需要忽略该文件。如果资源参数在 POST 请求中排在第一位,则可以轻松完成此操作。

看起来,如果这个 POST 来自一个 HTML 表单,首先包含资源名称,然后是文件字段,对于大多数(所有?)浏览器,这个顺序将保留在 POST 请求中。但完全依赖它是天真的,不是吗?

换句话说,HTTP 参数的顺序无关紧要,客户端可以自由地以任何顺序构造 POST。这不是真的吗?

这意味着,至少在理论上,服务器可能会在拒绝请求之前存储整个大文件。

在我看来,这是 RESTful url 具有优势的明显案例,因为您不必查看 POST 内容即可对请求执行某些授权/错误检查。

你同意吗?你有什么想法和经历?

请多多评论!在我看来,每个进行大型文件上传(或与此相关的任何文件上传)的人都应该考虑过这一点。

最佳答案

您不能肯定地依赖 POST 变量的顺序。特别是在提交/发布表单时,您不能相信表单数组的顺序是正确的。如果您想节省带宽,您可能需要在发布实际数据之前在其他地方检查凭据等。

关于HTTP POST 参数顺序/REST url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656956/

相关文章:

javascript - Restful 响应中的 json 数据是否应该包含对象类型信息?

Ajax 调用 : big differences between server runtime and client waiting time

c# - ASP.NET MVC 参数绑定(bind) : How to POST a list or array to a controller method?

http - 在 PUT 请求中传输编码 gzip

http - Ionic 2等待http响应

Angular HttpPost 方法返回 405 方法不允许

javascript - 使用 XMLHttpRequest 发送 POST 数据

php - 禁止用户访问我的站点的有效方法是什么?

c# - 使用 REST API 返回 XML 文档

angularjs - POST 请求 - Firebase - 预检响应无效(重定向) - CORS