Limit on the length of the data that a webserver can return in response to a GET request

懵懂的女人 提交于 2019-12-17 18:51:53

问题


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:


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)



来源:https://stackoverflow.com/questions/16172524/limit-on-the-length-of-the-data-that-a-webserver-can-return-in-response-to-a-get

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!