http - 如何在基于 websocket 的应用程序中管理/使用 cookie?
问题描述
我的应用程序使用快速服务器来为单页应用程序提供服务,然后其余的通信由 websockets 处理。我的问题是,如果通过 HTTP 交互发送 cookie,我将如何管理它们?我不认为 websockets 真的是用来处理 cookie 的,但我需要使用 cookie 来做一些事情,比如记住登录。我是否需要或者最好继续使用 HTTP 处理涉及 cookie 的事情(并且让 HTTP 服务器在与我的 websocket 服务器不同的端口上运行)?还是有其他推荐的解决方案?
解决方案
Websockets 是一种通信协议,您来回发送数据就像发送 HTTP 应用程序数据的 TCP 协议一样。浏览器知道如何解释 HTTP 请求和响应,并从标头推断 cookie 数据。这是 cookie 标头的示例:Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
现在,由于您通过 Websockets 传输数据,您需要做的就是告诉浏览器如何处理数据。
因此,为了在您的浏览器中设置一个 cookie,您将使用document.cookie = "username=John Doe"
它在您的浏览器中设置一个密钥对 cookie 条目。
请参阅:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie
推荐阅读
- python-3.x - Tkinter 填充不改变按钮的高度
- java - 底部导航栏片段多次
- node.js - 如何使用 NodeJS 在 lambda 中访问 AWS iot.describeCertificate()?
- directory - Caddy 反向代理到 /dir/ 到 localnet:port
- javascript - 使用点符号访问类或对象之外的对象属性?
- javascript - 为什么我的 router.push() 在同一条路线上使用不同的参数只有在遵循两次后才能正确显示?
- mysql - 如何在 MYSQL 中重新创建表?
- html - 如何在 html 中显示来自 Google 驱动器的 txt 文件的内容
- c# - ASP.NET - 如何检查数组是否为空
- visual-studio - 正在构建的 .net 核心应用程序被赛门铁克端点保护检测为病毒