如何从HTTPS页面正确重定向?

时间:2012-09-20 12:28:08

标签: java tomcat ssl https

假设我从浏览器到网站的SSL连接 从页面我按一个按钮,我在网站的另一部分(不同的页面)。在什么情况下重新谈判联系? 在servler重定向?向前?什么流程?
在这种情况下,正确的流程是什么?请注意,所有网站均为HTTPS。即没有简单的HTTP区域或外部链接(添加等) 容器将是tomcat。

2 个答案:

答案 0 :(得分:2)

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

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

还有various mechanisms to reduce the overhead due to SSL/TLS handshakes(支持取决于浏览器),False Start doesn't seem to be a success

答案 1 :(得分:1)

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

尽管保持活动设置,但是如果您在60秒窗口中单击其他内容,则您的浏览器可能会也可能不会尝试保持连接打开一段时间。以上链接提供了更多细节。

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