Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a limit of the size of response I can read over HTTP

I have a java program, that calls a url. The response of url is a json/string. I have to write a program that fetches the data from this url, but I was wondering if there's a limit on the max size HTTP can pass back?

I was going to write my server side (url) in such a way that it fetches all the data from db, but if there's a limit on the size I can fetch from server, I can do the read in batches also?

So, is there a limit on the size of the response I can send over HTTP from server to my java program?

Also, I came across this link. The last response talks about the size being equal to int, and I am not sure what that means. If someone can explain.

Thanks

like image 461
Kraken Avatar asked Dec 05 '14 06:12

Kraken


People also ask

Does HTTP response size have a limit?

The response limit is 9,223,372,036,854,775,807 bytes (2 ** 64).

How much data can you send over HTTP?

The HTTP protocol does not specify a limit. The POST method allows sending far more data than the GET method, which is limited by the URL length - about 2KB.

What is the maximum payload size that can be sent in POST methods?

POST method does not have any limit on the size of data. But Server & Browsers has.


2 Answers

There is no technical limit to the size of a HTTP body.

In the link you refer to it seems a limit imposed by a specific object that parses the HTTP because the object uses an int for the size, this is of course possible but not related to the HTTP protocol.

In HTTP you always have to give a content-length to the other side (is both for request & response), if your response is really large, it is up to the client to process it in an acceptable way (e.g. stream it directly to a file backend).

Chunking is nice but it is only meant for when you (the one sending the large response) don't know the actual total size of your response until you have streamed it. If you know the size beforehand, use the content-length header.

like image 108
nablex Avatar answered Oct 25 '22 22:10

nablex


you can consume the response in chunks i.e if the response is 8 mb you can consume 1mb at a time

here is the example http://mrbool.com/keep-alive-connections-and-chunked-response-in-http-1-1-with-java/27915

like image 43
Munawwar Hussain Shelia Avatar answered Oct 26 '22 00:10

Munawwar Hussain Shelia