网络服务器如何处理 HTTP POST

How does webserver handle HTTP POST

这可能是一个非常基本的问题。但是,我要解决的问题是 Web 服务器可以处理 HTTP 请求,因此它完全有能力处理 HTTP verbs,例如 GETPOST 等。

通过 GET 我们正在 return 处理用户请求的请求。所以网络服务器可以return把资源还给用户。但是当涉及到POST时,静态结果就无法return了。 POST 应该是动态的。在这种情况下,没有应用服务器的帮助,网络服务器如何单独服务 post 请求。因为结果需要动态生成,而网络服务器无法做到这一点。然而,网络服务器的基本目的是支持 HTTP 协议。因此它也应该能够支持 HTTP POST。任何人都可以就此分享一些信息来澄清这个疑问

这取决于 HTTP 服务器。

Python 的 SimpleHTTPServer / http.server 旨在仅处理静态文件。他们只处理 GETHEAD,并且会用 501 Unsupported method.

响应

如果您启动 nginx,并且不指定 CGI/FastCGI/uWSGI 处理程序,对于 HEAD/[=12= 以外的大多数方法,您将获得 405 Not Allowed ], 除了 403 Forbidden 用于 POST.

最后,一些服务器可能会静默地(并且错误地)响应它们对 GET 的响应方式。