您的位置:首页 > 其它

浏览器禁止cookie的会话策略

2016-05-06 10:54 417 查看
我们知道一般情况下网站的会话状态都是由客户端的cookie和服务端的session来协作维持,那么如果客户端的cookie被禁用了,又该怎么处理呢?

刚刚试了下淘宝登录,看来没了cookie确实限制了很多啊。不过,为了发挥我们追求技术的精神,还是列一下一些解决方案吧。

1、使用url重写(前提是浏览器需要禁止cookie),即作为URL路径的附加信息

<a href='<%=response.encodeURL("http://caiya.me/")%>'>index</a>
//
<%response.sendRedirect(response.encodeRedirectURL("

URL重写有什么缺点:

  对所有的URL使用URL重写,包括超链接,form的action,和重定向的URL。每个引用你的站点的URL,以及那些返回给用户的URL(即使通过间接手段,比如服务器重定向中的Location字段)都要添加额外的信息。

  这意味着在你的站点上不能有任何静态的HTML页面(至少静态页面中不能有任何链接到站点动态页面的链接)。因此,每个页面都必须使用servlet或JSP动态生成。即使所有的页面都动态生成,如果用户离开了会话并通过书签或链接再次回来,会话的信息都会丢失,因为存储下来的链接含有错误的标识信息-该URL后面的SESSION ID已经过期了。

跳转结果:http://caiya.me/;jsessionid=F19C643CB07B167BE923ABEC5A3AEA78

2、作为查询字符串追加在URL后面
http://caiya.me/?jsessionid=F19C643CB07B167BE923ABEC5A3AEA78
3、表单隐藏字段

就是服务器自动修改表单,增加隐藏字段,以便表单提交时可以传回给服务器。(目前这种应用较少)

说明:jsessionid是tomcat容器默认的会话客户端标识,是可以通过tomcat配置更改的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: