cookie和session的原理以及异同

Cookie: 

  ①存在于客户端(可被阻止)

  ②只能是文本文档
  ③如果设置了期限值,则写入客户端的文件;
  如果没有,它只对本窗口或其子窗口有效,其它窗口不能访问该Cookie
  ④在Servlet/JSP中设置的Cookie可以被同路径下或其子路径的Servlet/JSP访问,父路径不可以
  注:这里的路径是指URL,而不是Web文件的目录

Session: 

  ①存在于服务器端

  ②每个Session对应一个窗口,用SessionID标识,这个Session为该窗口及其子窗口共享
  ③有两种实现方式:a.使用Cookie(在Cookie可用时)b.URL重写(在Cookie被禁用时)
  ④没有访问路径的问题。同一个WebApplication下的Servlet/JSP设置的Session可以被互相访问
  前提是:同一个浏览器窗口或其子窗口

cookie和session的区别:

1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。  
    
2、session中保存的是对象,cookie中保存的是字符串。  
    
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,
那么同一个网站中不同路径下的cookie互相是访问不到的。  
    
4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。 但是如果服务器端启用了url编码,也就是用  
URLEncoder.encode()把所有的url编码了,则会在url后面出现如下类似的东西  
index.jsp:jsessionid=fdsaffjdlks;jaf;lkdjsf  

服务器通过这个进行session的判断  
5、 session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存  

猜你喜欢

转载自www.cnblogs.com/charlies1/p/10737097.html