Java 关于TLS加密的查询

Java 关于TLS加密的查询,java,servlets,jakarta-ee,encryption,Java,Servlets,Jakarta Ee,Encryption,我制作了两个J2EE应用程序,其中ProjectX中的一个servlet通过https协议执行到ProjectY的另一个servlet的sendRedirect 代码类似于 response.sendRedirect("https://ip:8443/ProjectY/servletY?id=123"); 在ProjectY中 SerletY的代码是 PrintWriter pw = response.getWriter(); pw.print("Passed id is ID = " +

我制作了两个J2EE应用程序,其中ProjectX中的一个servlet通过https协议执行到ProjectY的另一个servlet的sendRedirect

代码类似于

 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 as后能够看到浏览器的url

“”

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

谢谢你的支持

发生了什么事 没有涉及
POST
请求

  • 用户在浏览器中打开ProjectX的站点
  • 由于您的
    响应,它将以
    HTTP302
    响应进行响应。sendRedirect
  • 用户浏览器将获取响应的
    位置
    ,并将其打开
  • 因此,用户浏览器建立到
    ip:8443
  • TLS通道打开后,将发送
    GET/ProjectY/servletY?id=123 HTTP/1.1
  • ProjectY将通过安全TLS通道进行响应
  • 观察
    • 如果在步骤1中通过普通的
      HTTP
      调用ProjectX,那么
      302
      响应将不会被加密,所有访问您的连接的人都可以看到
      id
    • 用户的浏览器将始终看到
      id
      ,因为它需要遵循步骤3中的重定向
    • 用户将在地址栏中看到
      id
      ,因为浏览器将显示其新位置
    • 调用ProjectY时,
      id
      受到保护,因为它仅通过TLS通道发送
    发生了什么事 没有涉及
    POST
    请求

  • 用户在浏览器中打开ProjectX的站点
  • 由于您的
    响应,它将以
    HTTP302
    响应进行响应。sendRedirect
  • 用户浏览器将获取响应的
    位置
    ,并将其打开
  • 因此,用户浏览器建立到
    ip:8443
  • TLS通道打开后,将发送
    GET/ProjectY/servletY?id=123 HTTP/1.1
  • ProjectY将通过安全TLS通道进行响应
  • 观察
    • 如果在步骤1中通过普通的
      HTTP
      调用ProjectX,那么
      302
      响应将不会被加密,所有访问您的连接的人都可以看到
      id
    • 用户的浏览器将始终看到
      id
      ,因为它需要遵循步骤3中的重定向
    • 用户将在地址栏中看到
      id
      ,因为浏览器将显示其新位置
    • 调用ProjectY时,
      id
      受到保护,因为它仅通过TLS通道发送

    加密在浏览器和服务器之间,因此浏览器和服务器都可以访问未加密的信息。加密在浏览器和服务器之间,因此浏览器和服务器都可以访问未加密的信息。谢谢Scolytus,因此,我们可以得出结论,数据在传输之前仍在加密。但我们将能够在客户端浏览器上看到它,因为它正在请求URL,发送前将对其参数进行加密,然后由ServetY接收后对其进行解密。谢谢分享你的知识@ArghoChatterjee请记住,它不是从ProjectX加密到用户浏览器的。但是从浏览器到ProjectY都是加密的,是的。谢谢Scolytus,所以我们可以得出结论,数据在传输之前仍在加密。但我们将能够在客户端浏览器上看到它,因为它正在请求URL,发送前将对其参数进行加密,然后由ServetY接收后对其进行解密。谢谢分享你的知识@ArghoChatterjee请记住,它不是从ProjectX加密到用户浏览器的。但是从浏览器到ProjectY都是加密的,是的。