zoukankan      html  css  js  c++  java
  • session和cookie的简单理解

     0. 引子,我们为什么要cookie和session
          因为http请求是无状态的(不能记录用户的登录状态等),所以需要某种机制来保存用户的登录状态等信息,在下次访问web服务的时候,不用再次校验是否登录等状态,session机制和cookie机制分别是在服务器端和浏览器端的解决方案。
     
    1.关于cookie
    1.1  什么是cookie
    cookie,原意饼干。用来在浏览器端存储用户的状态信息,然后在访问后端的时候将这部分信息带回到后端。
    cookie的内容主要包括:名字,值,过期时间,路径和域
    1.2 cookie的分类
             会话cookie  不设置过期时间的cookie 保存在浏览器的内存中,关闭浏览器,cookie便被销毁。(常常被用作session)
             普通cookie  设置了过期时间   保存在硬盘上
    1.3怎么应用
       发起请求时:浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围(由路径和域决定)大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。
       处理请求时:在服务器端, 一般会对请求头中带的cookie信息做检查(比如说登录检查),如果检查通过,才能进行实际的业务处理。
    如果校验不通过,例如没有找到cookie或者cookie信息不正确(可能是伪造),跳转让其登录,然后登录完成之后,在响应中返回cookie信息,浏览器会根据返回的cookie信息,保存在硬盘或者内存中供下次使用。、
    2.关于session
    2.1什么是session
    session 用来在服务器端保存用户的状态信息。
    2.2怎么使用
        浏览器发起请求时:服务器首先会读取请求头中session信息。如果没有找到session信息或者本地检索不到此sessionid,如果没有就新生成一个sessionid,存储到服务器硬盘或者memcache中。
        浏览器接收到响应:会将这个返回的sessionID在本地内存也保存一份,供下一次请求使用。session保存在本地的其中一种实现方案是保存信息在cookie上,但是实际上cookie并不是session保存唯一解决方案,使用url重写的方式也可(把session id直接附加在URL路径的后面 )。
     
    3.cookie和sessiond的主要区别
    1、保存位置稍有区别
    cookie数据存放在客户的浏览器上,服务器端不用保存。session数据放在服务器上,本地内存也有一份。
    2、安全性不同
    cookie安全性不如session。因为普通cookie保存在本地硬盘上,黑客可以伪造url等方式发起xss攻击,获取本地硬盘保存状态的cookie,进而窃取用户的敏感信息。
    session则不同,只有在用户登录此网站时发起xss攻击才能获取session信息,关闭浏览器之后,session即被销毁,安全性较cookie要好
     
    3.跨域支持上的不同
    Cookie支持跨域名访问,例如将domain属性设置为“.biaodianfu.com”,则以“.biaodianfu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中,例如Google、Baidu、Sina等。而Session则不会支持跨域名访问。Session仅在他所在的域名内有效。
    4.服务器压力的不同
    Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用Session来追踪客户会话的。考虑到减轻服务器性能方面,应当使用COOKIE。
     
    5. 存取方式的不同
    Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比拟艰难的。
    而Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。
    6.cookie的保存内容大小有限制
    单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
     
    参考资料
    1.cookie 和session 的区别详解
     
    2.老生常谈session,cookie的区别,安全性
     
    3.知乎
  • 相关阅读:
    第一次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    第三次作业
  • 原文地址:https://www.cnblogs.com/shibazijiang/p/5568656.html
Copyright © 2011-2022 走看看