I have a REST service running on jetty server that responds to GET requests with some resource data. So far the data that i retrieve has been in the order of a few kb. I am looking to use a similar REST service that could possibly return huge data, may be a 100 mb or more. No memory issues expected since the request volume is low and both the jetty server and rest client processes have been configured with enough memory.
I am wondering if jetty or any webserver in general places a restriction on the length of data it can return to the client in response to a GET. If so, is it configurable in jetty?
Original Answer:
There are no limits on the amount of data returned on a HTTP response from Jetty.
You could stream data back to the client until shortly before the heat death of the universe.
Technically speaking, you can have a HTTP Response with no Content-Length
specified, which can be returned using either the Chunked Transfer-Encoding, or just a raw stream of bytes with a Connection: close
indicating when the data is complete (done being sent) by a close of the underlying connection. Both of which are essentially limit-less.
If you use a HTTP Response with Content-Length
header, be aware that Content-Length is, in practice, a 32-bit number, but more modern browsers support the 64-bit versions.
Update (August 2019):
Jetty 9.4.20.v20190813 can now handle Content-Length
headers of maximum size Long.MAX_VALUE
(9,223,372,036,854,775,807 bytes)