为Web应用程序选择Pure HTTPS或HTTP / HTTPS

时间:2015-06-16 05:54:22

标签: java http session https struts

我在网络应用程序中遇到了一个关于使用Http或Https的小问题。我对类似主题的堆栈溢出有很多疑问,但他们没有充分回答我的问题所以我决定发布这些问题。

问题 我目前正在研究一个使用J Boss应用服务器的基于Java的Web应用程序。前端主要由Struts,JavaScript和JQuery组成。我们目前正在评估用户建议,以便在登录页面中启用HTTPS,然后在HTTP中继续其余的用户会话。

此外,虽然用户会话在http中,但某些报告也需要在HTTPS中显示。这意味着用户会话将在Http和HTTPS之间切换。

以前的某个网站像Hotmail had this feature这样的网站,但为了提高安全性,已经离开去提供纯HTTPS。

虽然保留用户会话是可能的(也是可行的)同时只需要使用HTTPS和Http。这种实现是否比纯HTTPS实现提高了性能?如果是这样,为实现这一目的,可能会采取任何标准操作吗?

根据普遍看法,HTTPS往往会降低Web应用程序的性能。但是还有一个ncreasing number of sites that use full HTTPS。例如Google,GMail。

假设与纯Http网站相比,尝试纯粹用HTTPS实现此Web应用程序会有明显的性能问题吗?有没有方法可以提高纯HTTPS站点的性能?

资源

HTTP vs. HTTPS: What's the Difference?

Will web browsers cache content over https

What is the best and current way to move to HTTPS on a large website?

Transport Layer Security (TLS)

Tomcat session management - url rewrite and switching from http to https

google translate not showing up when https is used in url

Tomcat, keep session when moving from HTTPS to HTTP - Pelit Mamani提到的资源

Is SPDY any different than http multiplexing over keep alive connections

1 个答案:

答案 0 :(得分:1)

我没有尝试使用JBoss,而是尝试使用Tomcat,但是有几点可能是相关的。顺便说一句,在我们的案例中,我们让它工作,但最终还是切换到完整的https。

注意事项:

1)明显的安全隐患。黑客无法窃取您的密码,但他们可以窃听/更改非安全内容交换。

2)正如您所指出的那样 - 需要关注cookie,特别是他们的“安全”标志。我的经验是Tomcat,但听起来它可能与其他容器一起出现:当通过HTTPS Tomcat登录时合理地假设您需要安全会话cookie,因此在非安全页面上无法识别会话。我们不得不做一些调整,以便会话cookie不安全。 Tomcat, keep session when moving from HTTPS to HTTP

3)跨域:如果您的页面是通过http加载的,并且它向https发送了一个AJAX请求(反之亦然),则浏览器应用跨域安全限制,这又需要调整,例如CORS支持。

4)我们最终切换到完整的https。 它对高负载有一些性能影响(在具有其他瓶颈的服务上可忽略不计,例如数据库,但是对于纯内存/逻辑服务并且每秒有几十次点击而言它是显而易见的)。然而,无论如何我们觉得是时候进行水平扩展了。我们还花了一些时间来调整Tomcat连接器和放大器。我们的负载均衡器,结果表明一些配置使用https稍微好一些。