2

假设我有一个从浏览器到网站的 SSL 连接。
从页面我按下一个按钮,我在网站的另一部分(不同的页面)。在什么情况下会重新协商连接?
在服务器重定向?向前?什么流量?
在这种情况下,正确的流程是什么?请注意,所有站点都是HTTPS. 即没有普通HTTP区域或外部链接(添加等)。
容器将是tomcat。

4

2 回答 2

2

如果服务器请求它进行客户端证书身份验证,通常会重新协商 SSL/TLS 连接(这是通过禁用连接器上的客户端身份验证来完成的,但要求CLIENT-CERT在 webapp 中进行身份验证web.xml)。

否则,HTTP 请求/响应将作为浏览器进行的正常并发 TCP 连接池的一部分进行交换(这与 HTTP 连接重用有关,而不是与 SSL/TLS 相关),并具有通常的超时设置(不具体到 SSL/TLS)。现代浏览器应该能够重复使用 SSL/TLS 会话,以避免必须为每个会话进行完整的 SSL/TLS 握手。SSL/TLS 会话也有超时,但通常足够长;无论如何,重新建立新连接将由浏览器透明地完成。

尽管False Start 似乎并不成功,但也有各种机制可以减少 SSL/TLS 握手导致的开销(支持取决于浏览器)。

于 2012-09-20T12:45:51.803 回答
1

当您在网页上单击该按钮时,连接就建立了(即对服务器的 GET 或 POST)。HTTP 1.1。为整个请求保持该连接打开以获取所有资源,例如网页的 HTML 和后续图像、CSS、JS 等。如果您想在用户发起的请求之间保持连接打开,您可以查看keep -活着。关于它是否应该用于 https(甚至是 http)存在一些争议。

尽管设置了保持活动状态,但您的浏览器可能会或可能不会尝试在一段时间内保持连接打开,以防您在 60 秒窗口中单击其他内容。上面的链接对此提供了更多详细信息。

Servlet 重定向或转发应该没有重新协商连接的含义或理由。它将使用与用户单击按钮时创建的相同的一个。

于 2012-09-20T12:42:42.930 回答