You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (JIRA)" <ji...@apache.org> on 2017/02/02 09:14:54 UTC

[jira] [Commented] (HTTPCORE-444) When using HTTPS server with NoConnectionReuseStrategy, connections are not closed

    [ https://issues.apache.org/jira/browse/HTTPCORE-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849689#comment-15849689 ] 

Oleg Kalnichevski commented on HTTPCORE-444:
--------------------------------------------

Isaac,
From the HTTP protocol standpoint there is no difference between plain connections or those with a transport security. The underlying transport security layer should have no bearing on HTTP connection persisitence of what so ever. What is different however is that termination of TLS secured connections involves a handshake on the TLS level prior to connection termination on the TCP/IP level. That basically means that TLS connections usually do not terminate immediately. If anything goes wrong during the final TLS handshake the connection can stay alive for some while (depending on many factors such as socket timeout and so on). So, at the moment I see no evidence of this being a defect in HttpCore.

Oleg

> When using HTTPS server with NoConnectionReuseStrategy, connections are not closed
> ----------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-444
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-444
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.4.6
>            Reporter: Isaac Cruz Ballesteros
>            Priority: Minor
>
> I have a HTTPS server using NIO, and configured with NoConnectionReuseStrategy so that connections are immediately closed after download. I'm extending AbstractHttpEntity and implementing HttpAsyncContentProducer to produce the content which will be sent in response to a GET. When all the content has been written in produceContent(), I call encoder.complete(). Basically a basic HTTPS server handling file downloads.
> When using plain HTTP, after all data has been sent, ConnectionReuseStrategy,keepAlive() gets called, it returns false and the connection is closed immediately from the server.
> But when using HTTPS, keepAlive() is called but it does not close the connection. I have been following the code from that point, setting a breakpoint in keepAlive(), and I have the impression that a new handshake is initiated (not 100% sure of this), sending some extra data which causes the client to send a RST instead of a FIN when closing connection.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org