有关TLS加密的查询

时间:2016-01-28 16:22:24

标签: java servlets java-ee encryption

我已经创建了两个J2EE应用程序,其中ProjectX中的一个servlet通过https协议执行sendRedirect到ProjectY的另一个servlet。

代码就像

 response.sendRedirect("https://ip:8443/ProjectY/servletY?id=123");

在ProjectY中,

SerletY的代码为

PrintWriter pw = response.getWriter();
pw.print("Passed id is ID = " + request.getParameter("id"));

我的查询是,

由于在使用https时,通过网络发送的数据理想地加密,为什么我能够在重定向到ServletY之后看到浏览器的URL

" https://ip:8443/ProjectY/servletY?id=123"

我使用POST方法隐藏了参数,但我的问题是,它是否实际在从ProjectX(在http中)发送到ProjectY(这是https调用)时加密数据?

感谢您的支持。!!!

1 个答案:

答案 0 :(得分:2)

发生了什么

没有涉及POST请求。

  1. 用户打开ProjectX'浏览器中的网站
  2. 由于您的HTTP 302
  3. ,它会回复response.sendRedirect回复
  4. 用户的浏览器将获取响应的Location并将其打开
  5. 因此,用户的浏览器建立到ip:8443
  6. 的TLS连接
  7. 打开TLS频道后,会发送GET /ProjectY/servletY?id=123 HTTP/1.1
  8. ProjectY将通过安全的TLS频道做出回应。
  9. 观察

    • 如果您通过普通HTTP在步骤1中调用ProjectX,则302响应不会被加密,并且每个有权访问您的连接的人都可以看到id
    • 用户的浏览器将始终看到id,因为它需要遵循步骤3中的重定向。
    • 用户将在地址栏中看到id,因为浏览器会显示其新位置。
    • 调用ProjectY时,id受到保护,因为它仅通过TLS频道发送。