Cookie 和 Session的区别

cookies和session这两个东西常常会在面试当中问到,算是比较基础的知识,可是仍是须要作一下深刻理解。面试

Session

  1. Session的概念
    Session:在计算机中,尤为是在网络应用当中,被称为“会话控制”。Session
    对象存储特定用户会话所需的属性及配置信息。

    当程序须要为某个客户端的请求建立一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为SessionID),若是已包含则说明之前已经为此客户端建立过session,服务器就按照SessionID把这个session检索出来使用(检索不到,会新建一个),若是客户端请求不包含SessionID,则为此客户端建立一个session而且生成一个与此session相关联的SessionID,SessionID的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,用来惟一标识session,这个SessionID将会在本次响应中返回给客户端保存。跨域

  2. Session的生命周期
    Session保存在服务器端,为了获取更高的存取速度,服务器通常会把Session放在内存里面,每一个用户都会有一个独立的Session。若是Session里面的内容太过复杂,当大量的用户访问服务器时,可能会致使内存溢出,因此咱们的Cookie内容应当适当的精简。当咱们第一次访问服务器时,服务器会给咱们自动建立一个Session,生成session后,只要用户继续访问,服务器就会更新session的最后访问时间,而且维护这个session。当用户访问服务器一次,不管是否读写了session,服务器都会认定这个session活跃(active)了一次。

    当愈来愈多的用户访问咱们的服务器时,所以咱们的session会愈来愈多。为了防止内存溢出,服务器会把长时间没有活跃的Session删除。这个时间就是session的超时时间,过了超时时间,咱们的session就会自动失效浏览器

Cookie

  1. Cookie概念
    Cookie 能够翻译为“小甜品,小饼干” ,Cookie在网络系统中几乎无处不在,当咱们浏览之前访问过的网站时,网页中可能会出现 :你好XXX,这会让咱们感受很亲切,就好像吃了一个小甜品同样。这实际上是经过访问主机中的一个文件来实现的,这个文件就是 Cookie。在Internet 中,Cookie 其实是指小量信息,是由 Web服务器建立的,将信息存储在用户计算机上的文件。通常网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行Session 跟踪而存储在用户本地终端上的数据,而这些数据一般会通过加密处理。
  2. Cookie的不可跨域名性
    不少网站都会使用cookie,不一样浏览器采用不一样的方式保存Cookie,并且每一个网站的Cookie只可以被对应的网站使用。意思就是说当浏览器访问Baidu时,只会带Baidu的cookie,而不会带其余网站的Cookie,这就是Cookie的不可跨域名性。
    Cookie在客户端是由浏览器来管理的。浏览器能够保证各个网站只能操做各个网站的Cookie,从而保证用户的隐私安全。
  3. Cookie的内容
    cookie的主要内容包括名字,值,过时时间,域和路径。域和路径一块儿构成cookie的做用范围。cookie若是不设置过时时间的话,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器,这个cookie就会消失。这种生命期为浏览器会话期的Cookie被称为会话cookie。会话Cookie通常不保存在硬盘上而是保存在内存里,这种行为并非规范规定的。若是Cookie设置了过时时间,浏览器就会把cookie保存到硬盘上,即便浏览器关闭了,这些cookie仍是会一直有效直到过了过时时间。
  4. Cookie的修改和删除
    Cookie并无提供修改和删除操做,要想修改某一个Cookie只须要新建一个同名的Cookie,添加到请求里面去覆盖原来的Cookie。删除也是如此,只须要将要删除的Cookie的过时时间设置成如今时间的以前就能够了,而后再覆盖原来的Cookie。须要注意的是:要修改的和要删除Cookie的名字(name),域名(domain)和路径(Path)等除了值(value)和过时时间这两个属性以外必须和原来彻底同样。不然,浏览器就会将请求里面的Cookie设为新的Cookie,至关于覆盖失败,也就是删除和修改失败了。

Session和Cookie的区别

  1. cookie数据存放在客户端,session数据放在服务器上。
  2. cookie不是很安全,别人能够分析存放在本地的Cookie并进行Cookie欺骗考虑到安全应当使用session。
  3. session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用Cookie。
  4. 单个Cookie保存的数据长度不能超过4K,不少浏览器都限制一个网址最多保存20个cookie。
相关文章
相关标签/搜索