Limit on the length of the data that a webserver c

2019-01-23 23:11发布

问题:

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?

回答1:

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.