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
The response limit is 9,223,372,036,854,775,807 bytes (2 ** 64).
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.
POST method does not have any limit on the size of data. But Server & Browsers has.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With