2014-12-05 104 views
1

我有一個java程序,它調用一個url。 url的響應是一個json /字符串。我必須編寫一個從這個URL獲取數據的程序,但是我想知道HTTP可以傳回的最大大小是否有限制?是否有可以通過HTTP讀取的響應大小的限制

我打算編寫我的服務器端(url),以便從db獲取所有數據,但是如果我可以從服務器獲取大小的限制,我也可以批量讀取?

那麼,我可以通過HTTP從服務器發送到我的Java程序的響應大小是否有限制?

此外,我碰到了this link.最後一個迴應談論的大小等於int,我不知道這意味着什麼。如果有人能解釋。

感謝

回答

5

沒有技術限制的例子HTTP正文的大小。

在引用的鏈接中,似乎是由分析HTTP的特定對象施加的限制,因爲對象使用int來表示大小,這當然可能但與HTTP協議無關。

在HTTP中,您總是必須給對方一個內容長度(對於請求&響應),如果您的響應非常大,則由客戶端以可接受的方式處理它(例如將其直接流式傳輸到文件後端)。

分塊雖然不錯,但它只適用於您(發送較大響應的分組)不知道您的響應的實際總大小,直到您完成流式傳輸爲止。如果您事先知道大小,請使用content-length標題。

-1

我不確定,但假設這取決於您的網絡服務器。

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 
    } 
} 
+0

好奇,爲什麼這得到downvoted真的。有些意見? – bvdb 2018-02-14 09:18:27

相關問題