一个POST请求的大小是否有限制?我有一个很大的过程,我想要将其输出缓存起来。基本上,由于特定项目的增长,查询数量和响应时间变得无法控制,我想要将一个大型HTML表格存储在缓存中。
现在,我正在发送由ajax调用检索到的大量输出,在另一个ajax调用中(在第一个完成后),但是我只收到了一小部分数据。我认为我的ajax函数是正确的,因为存储的输出始终相同(按字符计算)。但是我在缓存中丢失了约90%的输出...
一个POST请求的大小是否有限制?我有一个很大的过程,我想要将其输出缓存起来。基本上,由于特定项目的增长,查询数量和响应时间变得无法控制,我想要将一个大型HTML表格存储在缓存中。
现在,我正在发送由ajax调用检索到的大量输出,在另一个ajax调用中(在第一个完成后),但是我只收到了一小部分数据。我认为我的ajax函数是正确的,因为存储的输出始终相同(按字符计算)。但是我在缓存中丢失了约90%的输出...
默认情况下,POST方法的最大大小为8 Mb(可以通过在php.ini文件中设置post_max_size来更改)。
"POST请求的大小是否有限制?"
是的,PHP有一个设置:post_max_size
我自己遇到了这个问题,发现从PHP5.3.9开始有一个新的设置可以限制post变量的总数(而不仅仅是大小)。
max_input_vars = 1000
如果您当时使用的是PHP的夜间版或发布候选版本,那么可能存在与您遇到的相同问题。
; Maximum size of POST data that PHP will accept.
; http://php.net/post-max-size
post_max_size = 8M
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
post_max_size指定POST的最大大小,由于它必须包含在内存中,因此内存限制必须更大。内存将需要包含运行程序和所有堆变量,包括POST。
如果您仅将post_max_size增加到接近或超过内存限制并忘记增加memory_limit,则当内存耗尽时,POST大小将被限制为较低的值。
在本示例中,您可以看到默认设置。