【问题标题】:how to get the cookies of two servers 1. runs application (HTTP) , 2. runs websocket(WS) server?如何获取两台服务器的cookies 1.运行应用程序(HTTP),2.运行websocket(WS)服务器?
【发布时间】:2017-06-05 12:55:19
【问题描述】:

我有一个应用程序托管在端口 8080 上的 tomcat 服务器 上。以及使用 websocket 连接的同一应用程序,该连接指向端口 1234 上的另一个 tomcat 服务器。但是当我从 Web 浏览器控制台执行“document.cookie”时,它只显示来自 websocket 服务器(第二台服务器。端口 1234)的 cookie,但我需要 来自两个服务器的所有 cookie。 谁能帮帮我?

【问题讨论】:

    标签: javascript java websocket


    【解决方案1】:

    没有办法解决这个问题,因为 cookie 就是这样设计的——一台服务器看不到另一台服务器的 cookie。

    执行此操作的最简单方法是在 Tomcat 服务器中添加一些代理代码,将发送到某个端点的所有请求转发到端口 1234 上的服务器。

    例如,如果您希望将所有发往http://localhost:8080/websockets 的请求转发到位于http://localhost:1234 的服务器,然后配置在端口8080 上运行的Tomcat,如下所示:

    ProxyPass         /websockets  http://localhost:1234/webapp
    ProxyPassReverse  /websockets  http://localhost:1234/webapp
    

    这里是 Tomcat 代理的文档,它们是一个好的开始,但相当基础:

    https://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html

    在生产中,您可能会在两者前面都有一个专用代理服务器(如 Apache HTTP 或 NGINX),这也将解决您的 cookie 问题,因为浏览器只会向单个服务器/端口发送请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2021-09-14
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多