网络服务器如何处理 HTTP POST
How does webserver handle HTTP POST
这可能是一个非常基本的问题。但是,我要解决的问题是 Web 服务器可以处理 HTTP
请求,因此它完全有能力处理 HTTP verbs
,例如 GET
、POST
等。
通过 GET
我们正在 return 处理用户请求的请求。所以网络服务器可以return把资源还给用户。但是当涉及到POST
时,静态结果就无法return了。 POST
应该是动态的。在这种情况下,没有应用服务器的帮助,网络服务器如何单独服务 post 请求。因为结果需要动态生成,而网络服务器无法做到这一点。然而,网络服务器的基本目的是支持 HTTP 协议。因此它也应该能够支持 HTTP POST。任何人都可以就此分享一些信息来澄清这个疑问
这取决于 HTTP 服务器。
Python 的 SimpleHTTPServer
/ http.server
旨在仅处理静态文件。他们只处理 GET
和 HEAD
,并且会用 501 Unsupported method
.
响应
如果您启动 nginx
,并且不指定 CGI/FastCGI/uWSGI 处理程序,对于 HEAD
/[=12= 以外的大多数方法,您将获得 405 Not Allowed
], 除了 403 Forbidden
用于 POST
.
最后,一些服务器可能会静默地(并且错误地)响应它们对 GET
的响应方式。
这可能是一个非常基本的问题。但是,我要解决的问题是 Web 服务器可以处理 HTTP
请求,因此它完全有能力处理 HTTP verbs
,例如 GET
、POST
等。
通过 GET
我们正在 return 处理用户请求的请求。所以网络服务器可以return把资源还给用户。但是当涉及到POST
时,静态结果就无法return了。 POST
应该是动态的。在这种情况下,没有应用服务器的帮助,网络服务器如何单独服务 post 请求。因为结果需要动态生成,而网络服务器无法做到这一点。然而,网络服务器的基本目的是支持 HTTP 协议。因此它也应该能够支持 HTTP POST。任何人都可以就此分享一些信息来澄清这个疑问
这取决于 HTTP 服务器。
Python 的 SimpleHTTPServer
/ http.server
旨在仅处理静态文件。他们只处理 GET
和 HEAD
,并且会用 501 Unsupported method
.
如果您启动 nginx
,并且不指定 CGI/FastCGI/uWSGI 处理程序,对于 HEAD
/[=12= 以外的大多数方法,您将获得 405 Not Allowed
], 除了 403 Forbidden
用于 POST
.
最后,一些服务器可能会静默地(并且错误地)响应它们对 GET
的响应方式。