gpt4 book ai didi

post - 使用GET方法上传文件

转载 作者:行者123 更新时间:2023-12-03 08:49:19 27 4
gpt4 key购买 nike

众所周知,文件上传最常使用 POST 来完成。方法。那么,为什么 GET 不能?方法可用于文件上传?是否有针对 HTTP 的具体禁令 GET上传?

最佳答案

GET 请求可能包含实体主体

RFC 2616 不会阻止实体主体作为 GET 请求的一部分。这经常被误解,因为 PHP 以其名不副实的 $_GET 搅浑水。超全局。 $_GET技术上与 HTTP 无关 GET request 方法——它只不过是来自请求 URI 查询字符串的 url 编码参数的键值列表。您可以访问 $_GET即使请求是通过 POST/PUT/etc 发出的。很奇怪吧?不是一个很好的抽象,是吗?

为什么 GET 实体是个坏主意

那么 spec say about the GET method 是什么意思? ... 好:

In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered "safe."



所以 GET 的重要事情是确保任何 GET 请求都是安全的。仍然,禁令是
只有“不应该”......从技术上讲,HTTP 仍然允许 GET 请求导致不属于的操作
严格基于“检索”。

当然,从语义的角度来看,使用名为 GET 的方法。执行除此之外的 Action
“获取”资源也没有多大意义。

当 GET 实体正文完全错误时

关于幂等性,规范说:

Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property.



这意味着 GET 方法不能对多个请求产生不同的副作用。
相同的资源。因此,无论实体主体作为 GET 请求的一部分出现,副作用
必须始终相同。通俗地说,这意味着如果您发送带有实体主体的 GET
100 次服务器无法创建 100 个新资源。无论是发送一次还是 100 次请求都必须
有相同的结果。这严重限制了 GET 方法用于发送实体主体的有用性。

如有疑问,请在评估功效时始终退回到安全性/幂等性测试
方法及其产生的副作用。

关于post - 使用GET方法上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com