如果满足以下条件:
所有页面都是静态的(例如,要通过websocket数据填写的模板)
所有网页都是公开的
会话ID和状态通过websocket
通过sessionStorage和/或localStorage存储的客户端会话状态
是否还需要cookie?
答案 0 :(得分:2)
localStorage / sessionStore确实可以替换cookie存储。两者都在客户端。
关于cookie的巧妙之处在于它们会自动附加到任何HTTP请求中。从编码的角度来看,绝对没有任何事情可做。但是由于你想使用websockets,它不适用 - 你仍然需要使用存储在localStorage中的sessionid进行连接。
因此,您的问题的答案是“否”,您的方案中不需要cookie
答案 1 :(得分:1)
如果页面是100%静态的,则没有状态,因此问题变得没有实际意义,因为根据请求保留状态根本不需要任何机制。
但是,如果页面的任何部分是动态的,那么在多个会话中保留状态可能仍然需要cookie。由于cookie存储在客户端,但在每次请求时都传递给服务器,因此它们是同步客户端和服务器状态的机制。当然,如果你愿意,可以通过AJAX请求和localStorage自己实现。