Apache 模块 mod_request

Description:筛选器处理和提供 HTTP 请求正文
Status:Base
Module Identifier:request_module
Source File:mod_request.c
Compatibility:在 Apache 2.3 和更高版本中可用

KeptBodySize Directive

Description:保留请求主体,而不是将其丢弃到指定的最大大小,以供 mod_include 之类的过滤器潜在使用。
Syntax:KeptBodySize maximum size in bytes
Default:KeptBodySize 0
Context:directory
Status:Base
Module:mod_request

在正常情况下,当请求处理程序不需要它时,请求处理程序(例如静态文件的默认处理程序)将丢弃请求正文。结果,诸如 mod_include 之类的过滤器仅限于仅在将其他 URL 包括为子请求时才发出GET个请求,即使原始请求是POST请求也是如此,因为一旦进行过滤处理,被丢弃的请求主体就不再可用。

当此伪指令的值大于零时,否则将丢弃请求正文的请求处理程序将把请求正文放在一边,以供指定最大大小的过滤器使用。在使用 mod_include 过滤器的情况下,尝试对静态 shtml 文件进行POST请求将导致所有子请求为POST请求,而不是以前的GET请求。

通过此功能,可以将复杂的网页和 Web 应用程序分解为各个小组件,并使用mod_include将这些组件和周围的网页结构组合在一起。这些组件可以采用 CGI 程序,脚本语言或使用mod_proxy从另一台服务器反向代理到 URL 空间的 URL 的形式。

注意: 必须将每个预留的请求放在临时 RAM 中,直到请求完成为止。因此,应注意确保服务器上有足够的 RAM 来支持预期的负载。此指令的使用应限于 URL 空间的目标部分上所需的位置,并且其值应尽可能低,但仍足以容纳请求正文。

如果 Client 端发送的请求大小超过此指令分配的最大大小,则服务器将返回413 Request Entity Too Large

See also