Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 如何在基于websocket的应用程序中管理/使用Cookie?_Http_Cookies_Websocket - Fatal编程技术网

Http 如何在基于websocket的应用程序中管理/使用Cookie?

Http 如何在基于websocket的应用程序中管理/使用Cookie?,http,cookies,websocket,Http,Cookies,Websocket,我的应用程序使用一个express服务器为一个单页应用程序提供服务,然后其余的通信由WebSocket处理。我的问题是,如果cookies是通过HTTP交互发送的,我将如何管理它们?我不认为WebSocket真的是用来处理cookies的,但我需要用cookies来做一些事情,比如记住登录名。我是否需要或者最好继续使用HTTP来处理涉及cookie的事情(并且让HTTP服务器在我的websocket服务器的单独端口上运行)?或者有其他推荐的解决方案吗?Websockets是一种通信协议,您可以像

我的应用程序使用一个express服务器为一个单页应用程序提供服务,然后其余的通信由WebSocket处理。我的问题是,如果cookies是通过HTTP交互发送的,我将如何管理它们?我不认为WebSocket真的是用来处理cookies的,但我需要用cookies来做一些事情,比如记住登录名。我是否需要或者最好继续使用HTTP来处理涉及cookie的事情(并且让HTTP服务器在我的websocket服务器的单独端口上运行)?或者有其他推荐的解决方案吗?

Websockets是一种通信协议,您可以像发送HTTP应用程序数据的TCP协议一样来回发送数据。浏览器知道如何解释HTTP请求和响应,并从标题推断cookie数据。下面是cookie头的示例:
Set cookie:id=a3fWa;Expires=Wed,2015年10月21日07:28:00 GMT
现在,由于您通过WebSocket传输数据,所以您需要做的就是告诉浏览器如何处理数据

因此,为了在浏览器中设置cookie,您可以使用
document.cookie=“username=John Doe”
在浏览器中设置密钥对cookie条目

请参阅:


WebSocket是一种通信协议,您可以来回发送数据,就像TCP协议发送HTTP应用程序数据一样。浏览器知道如何解释HTTP请求和响应,并从标题推断cookie数据。下面是cookie头的示例:
Set cookie:id=a3fWa;Expires=Wed,2015年10月21日07:28:00 GMT
现在,由于您通过WebSocket传输数据,所以您需要做的就是告诉浏览器如何处理数据

因此,为了在浏览器中设置cookie,您可以使用
document.cookie=“username=John Doe”
在浏览器中设置密钥对cookie条目

请参阅:


所以我应该在浏览器中设置cookie并通过websocket消息发送它们?对于httpOnly Cookie(我应该不使用它们吗)?@hawexp当您通过websocket发送数据时,您可以自由地使用数据做任何您想做的事情,并以自己的方式进行解释。是的,您可以在浏览器中设置cookie,然后通过WebSocket将它们发送到服务器。也可以反过来做。然而,httpOnly和Cookie的概念正在逐渐消失,因为您正在来回发送文本,您有责任解释它,就像我在上面向您展示的那样。通过WebSocket发送Cookie是“标准”吗?还是专门为cookie运行单独的http服务器更好handling@hawexp在这种荒芜的环境中根本没有标准:)什么最适合你。但是,再次问自己一个问题,为什么您的web套接字应用程序需要cookie。研究cookies的用途。然后想想你对它们的使用情况。请记住,最适合您的是WebSocket连接,它的生命开始于一个HTTP请求,“升级”到WebSocket的连接。在HTTP阶段,您可以发送/接收HTTP cookies。一旦连接升级,HTTP Cookie就不再适用。所以我应该在浏览器中设置Cookie并通过websocket消息发送它们?对于httpOnly Cookie(我应该不使用它们吗)?@hawexp当您通过websocket发送数据时,您可以自由地使用数据做任何您想做的事情,并以自己的方式进行解释。是的,您可以在浏览器中设置cookie,然后通过WebSocket将它们发送到服务器。也可以反过来做。然而,httpOnly和Cookie的概念正在逐渐消失,因为您正在来回发送文本,您有责任解释它,就像我在上面向您展示的那样。通过WebSocket发送Cookie是“标准”吗?还是专门为cookie运行单独的http服务器更好handling@hawexp在这种荒芜的环境中根本没有标准:)什么最适合你。但是,再次问自己一个问题,为什么您的web套接字应用程序需要cookie。研究cookies的用途。然后想想你对它们的使用情况。请记住,最适合您的是WebSocket连接,它的生命开始于一个HTTP请求,“升级”到WebSocket的连接。在HTTP阶段,您可以发送/接收HTTP cookies。一旦连接升级,HTTP cookies将不再适用。