用哪种HTTP方法来下载文件?

16
在我的网站上,用户可以下载他们的文件。但是这些文件是通过PHP生成的。那么,我应该使用哪种HTTP方法作为请求下载文件附件的方式?GET还是POST?
2个回答

16

GET用于被动地检索文件,POST用于在服务器上更改信息。这是从客户端看到的,不管服务器在此过程中做什么或不做什么都没有关系。

所以,除非您在请求中更改了某些服务器状态:使用GET。


当你说服务器状态时,你指的是什么? - Legends
2
服务器的状态(与应用程序行为相关的任何内容,不包括缓存或日志等附带内容)。如果您更改数据库中的数据,则这是一种状态更改 - deceze
2
有时候,即使服务器状态没有改变,使用POST更为理想。GET没有请求体,而POST可以有。因此,如果在请求中发送大量数据,并且URL参数不适合(例如2K限制),那么POST(带有其请求体)可能是唯一的选择。 - colm.anseo

5

GET

源自http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

GET请求获取指定资源的表示形式,并且仅应用于数据检索,没有其他影响。(这也适用于其他一些HTTP方法。)[1] W3C已经发表了关于此区别的指导原则,指出:“Web应用程序设计应该根据上述原则和相关限制进行。”[11] 请参见下面的安全方法。

POST 请求服务器接受请求中包含的实体作为URI标识的Web资源的新下属。 POST的数据可以是现有资源的注释;公告板、新闻组、邮件列表或评论线程的消息;提交Web表单到数据处理过程的数据块; 或要添加到数据库的项目。[12]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接