Close on the input stream will not close the connection. But it will cause the server that is writing content to have a broken pipe exception and then they will close the connection.
If the server is not confident the request/response cycle has completed normally, then it will close the connection. ditto for the client. On Wed, 9 Oct 2019 at 17:28, Đạt Cao Mạnh <[email protected]> wrote: > Hi Greg, > > I just want to confirm, close() here is called on InputStream. By calling > that it will close the underlying connection too? And it even true in case > of HTTP/2? > > Thanks a lot! > > Vào Th 4, 9 thg 10, 2019 lúc 05:28 Greg Wilkins <[email protected]> đã > viết: > >> >> Cao, >> >> The answer is "it depends". >> >> Closing the stream will result in the connection being closed and not >> reused for other requests. Making new connections can be expensive, >> especially if SSL is used, plus new connections are often slower than old >> connections as their flow control windows are not well sized. >> >> So fully consuming some content so a connection may be reused may be >> cheaper than closing... but if generating the data is expensive or there is >> a lot of data yet to come, then perhaps not..... >> >> so your mileage may vary! >> >> >> >> >> >> >> >> On Wed, 9 Oct 2019 at 01:56, Đạt Cao Mạnh <[email protected]> >> wrote: >> >>> Hi guys, >>> >>> I kinda see this pattern frequently in Apache HttpClient >>> >>> Please note that if response content is not fully consumed the underlying >>> connection cannot be safely re-used and will be shut down and discarded by >>> the connection manager. >>> >>> >>> Wondering it will be the same pattern need to apply when uses >>> *InputStreamResponseListener*? Based on Javadoc >>> >>> If the consumer is faster than the producer, then the consumer will block >>> with the typical InputStream.read() semantic. If the consumer is slower >>> than the producer, then the producer will block until the client consumes >>> >>> So I kinda assume that close() without fully consume the *InputStream* will >>> be better (since producer doesn't need to put more data into the stream). >>> Is that true? >>> >>> Thanks! >>> *------* >>> *Cao Mạnh Đạt* >>> *E-mail: [email protected] <[email protected]>* >>> >> _______________________________________________ >>> jetty-users mailing list >>> [email protected] >>> To change your delivery options, retrieve your password, or unsubscribe >>> from this list, visit >>> https://www.eclipse.org/mailman/listinfo/jetty-users >> >> >> >> -- >> Greg Wilkins <[email protected]> CTO http://webtide.com >> _______________________________________________ >> jetty-users mailing list >> [email protected] >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://www.eclipse.org/mailman/listinfo/jetty-users > > -- > *Best regards,* > *Cao Mạnh Đạt* > *E-mail: [email protected] <[email protected]>* > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/jetty-users -- Greg Wilkins <[email protected]> CTO http://webtide.com
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users
