浏览器禁止cookie的会话策略

咱们知道通常状况下网站的会话状态都是由客户端的cookie和服务端的session来协做维持,那么若是客户端的cookie被禁用了,又该怎么处理呢?

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

一、使用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=F19C643CB07B167BE923ABEC5A3AEA78tomcat

二、做为查询字符串追加在URL后面服务器

http://caiya.me/?jsessionid=F19C643CB07B167BE923ABEC5A3AEA78cookie

三、表单隐藏字段session

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

说明:jsessionid是tomcat容器默认的会话客户端标识,是能够经过tomcat配置更改的。url

相关文章
相关标签/搜索