如果我发送 HTTP GET 请求,我会在 GET 中收到响应吗?

Rin*_*nku 8 http http-headers http-method

这可能是一个非常基本的问题,所以请原谅我的无知

服务器使用哪种方法来响应它收到的请求?

我正在制作一个网络应用程序,并且有一个特定的路线返回一个大的(比如 .iso 图像)文件。因此,当用户单击下载按钮时,我让 JavaScript 请求带有{method: "GET"}.

当下载在用户机器上开始时,服务器使用哪种 HTTP 方法发送文件?

我真的很困惑:

  • 服务器上传用户下载是如何处理的?
  • 对于大文件,它是否默认为 POST?
  • 作为程序员,我如何确保最终用户可以轻松下载(可恢复)?

Mar*_*ost 11

服务器用户使用哪种方法来响应它收到的请求?

HTTP是请求-响应协议。无论您使用何种HTTP 方法(GET、POST、HEAD 等)向服务器发出请求,服务器始终以相同的方式响应(这与您的请求方法无关);当然响应的内容会根据您的要求而改变。
所以没有 POST 或 GET 响应之类的东西。

服务器上传用户下载是如何处理的?

将文件上传到服务器/服务时,您发送的请求包含文件本身,HTTP 协议建议应该使用 POST 请求发送数据。

从服务器下载文件时,服务器将在响应中向您发送文件。请求远程文件时应该使用 GET 请求,因为 GET 被定义为用于检索资源的命令。此外,正在发送的数据类型在请求和响应的标头部分中指定为Content-Type

请注意,您可以使用 GET 上传文件,将整个文件填充到 URL 中,或者下载响应 POST 请求的文件。然而,这些是非标准应用程序并且有限制(例如限制 URL 的最大长度),在服务器端处理这些请求时,您还需要做更多的工作。

对于大文件,它是否默认为 POST?

这应该已经得到回答 - 服务器不会向您发送任何 POST 或 GET,只是响应。

作为程序员,我如何确保最终用户可以轻松(可恢复)下载?

这将取决于所使用的服务器端和客户端技术。现代浏览器和正确配置的 Web 服务器通常可以自动恢复现有文件的下载。但是,如果您在服务器上手动构建文件响应,则还需要手动处理下载恢复。请参阅此答案以使用 PHP 实现。