疑难解答“请求实体太大”(HTTP 413)错误消息返回给浏览器

时间:2009-05-18 19:06:19

标签: http cookies proxy

我们的网络应用程序的用户偶尔会遇到以下错误消息:

Request Entity Too Large
The requested resource
/ourapp/ourlocation/
does not allow request data with GET requests, or the amount of data provided in the request exceeds the capacity limit.

我们检查了我们的日志,但是我们无法找到任何与上述错误相关的条目。在做了一些研究之后,我认为问题是请求的某些方面对于某些代理服务器来说太大而且代理将413错误返回到用户的Web浏览器。 (但这只是猜测。)

您是否有任何想法可以找出造成此错误的原因?到目前为止,我已使用Charles Web Debugging ProxyLiveHTTPHeaders尝试观察每个字节数对给定页面的请求正在使用。

以下是一些可能有助于我进行问题排查的其他问题。

  1. 允许的最大Cookie大小是多少? 4096字节?
  2. GET请求的哪些部分会计入错误消息中引用的容量限制?
  3. GET请求的最大大小是多少?

2 个答案:

答案 0 :(得分:3)

如果它是一个代理服务器返回错误,那么我希望有另一个响应头在那里有代理的名称。也许是“X-Via”或“Server”标题?

对你的问题...... 1& 3是由代理服务器决定的。 2:我认为请求中的每个字节都会计入限制。

为了测试这个,我会创建一个控制台应用程序,以保持发送更大的&更大的“GET”请求,直到它收到413回来。然后你可以让其中一个用户运行它,看看它是否可以重现。

答案 1 :(得分:3)

对于作为反向代理的nginx,我必须添加:


    proxy_set_header  Destination   $dest;
    client_max_body_size       1000m; #100m shoul'd do fine too
    client_body_buffer_size    128k;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;