是否有可以通过HTTP读取的响应大小的限制
问题描述:
我有一个java程序,它调用一个url。 url的响应是一个json /字符串。我必须编写一个从这个URL获取数据的程序,但是我想知道HTTP可以传回的最大大小是否有限制?是否有可以通过HTTP读取的响应大小的限制
我打算编写我的服务器端(url),以便从db获取所有数据,但是如果我可以从服务器获取大小的限制,我也可以批量读取?
那么,我可以通过HTTP从服务器发送到我的Java程序的响应大小是否有限制?
此外,我碰到了this link.最后一个回应谈论的大小等于int,我不知道这意味着什么。如果有人能解释。
感谢
答
没有技术限制的例子HTTP正文的大小。
在引用的链接中,似乎是由分析HTTP的特定对象施加的限制,因为对象使用int来表示大小,这当然可能但与HTTP协议无关。
在HTTP中,您总是必须给对方一个内容长度(对于请求&响应),如果您的响应非常大,则由客户端以可接受的方式处理它(例如将其直接流式传输到文件后端)。
分块虽然不错,但它只适用于您(发送较大响应的分组)不知道您的响应的实际总大小,直到您完成流式传输为止。如果您事先知道大小,请使用content-length标题。
答
可以消耗以块的响应,即如果响应为8 MB,你可以在一个时间
这里消耗1MB的 http://mrbool.com/keep-alive-connections-and-chunked-response-in-http-1-1-with-java/27915
答
我不确定,但假设这取决于您的网络服务器。
E.g. Jetty具有默认的最大表单大小。 你可以否决它如下:
import org.mortbay.jetty.handler.ContextHandler;
public class MyServlet extends javax.servlet.http.HttpServlet
{
public void MyServlet
{
init();
}
public void init() throws UnavailableException
{
// SET A NEW MAXIMUM FORM SIZE
ServletContext context = getServletContext().getContext("/");
ContextHandler handler = ((ContextHandler.SContext) context).getContextHandler();
handler.setMaxFormContentSize(600000); // default = 200 000
}
}
好奇,为什么这得到downvoted真的。有些意见? – bvdb 2018-02-14 09:18:27