美文网首页
cookie和session

cookie和session

作者: TheoLin | 来源:发表于2017-06-13 22:01 被阅读0次

    cookie篇

    cookie是客户端本地存储的一种方式,常见的客户端本地存储的方式还有:session storage、local storage和indexDB。cookie有两种,一种储存在浏览器进程中,另一种储存在硬盘中。sessionId储存在第一种cookie中,所以当浏览器关闭就等于销毁了这个sessionId。

    cookie的用途

    cookie是一小段文本信息,伴随着用户请求在 Web 服务器和浏览器之间传递。cookie存储在计算机本地中,可以跨越一个域名下的多个网页,但不能跨越多个域名使用。保存用户登录信息、保存购物信息是cookie常见的用途。

    cookie的原理

    用户每次访问页面浏览器都先搜索本地是否有与这个域名相关联的cookie,有的话便添加到request header的Cookie字段中,与http请求一起发送到该站点。

    cookie的内容

    在浏览器开发者模式resource下可观察cookie,其内容有:name/value、domain、Path、Expires/Max-age、httpOnly、Secure。各名值对之间需有分号+空格隔开。其中httpOnly属性只能在服务器设置、httpOnly和secure是非名值对属性。例子如下:

    document.cookie = "test=myCookie; domain=.google.com.hk; expires=Sat, 04 Nov 2017 16:00:00 GMT; secure"
    
    cookie的设置

    可以从客户端或者服务端设置cookie:

    //客户端:
    document.cookie = "name=value[; expires=GMTDate][; domain=domain][; path=path][; secure]"
    
    //服务端:
    Set-Cookie: name=value[; expires=GMTDate][; domain=domain][; path=path][; secure][; HttpOnly]
    

    每次设置不同的cookie名称就是新增cookie,修改cookie时可以修改原cookie的expries、secure属性,但不能修改domain、path属性。修改cookie时domain、path必须与原cookie保持一致,不然就会新增cookie。将expries设为一个过去的时间或将max-age设为0可以删除cookie。

    cookie的缺点

    安全性:由于cookie在HTTP中是明文传递的,其中包含的数据都可以被他人访问,可能会被篡改、盗用。

    1. 大小限制:cookie的大小限制在4KB左右,若要做大量存储显然不是理想的选择。
    2. 增加流量:cookie每次请求都会被自动添加到Request Header中,无形中增加了流量。cookie信息越大,对服务器请求的时间也越长。

    session篇

    在用户访问页面时,服务器可以为每个用户浏览器创建一个会话对象(session对象),并将sessionId保存到cookie上。注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,程序可以从用户的session中取出该用户的数据,为用户服务。

    session和cookie的区别

    1. cookie数据存放在客户的浏览器上,session数据放在服务器上。
    2. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。
    3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。
    4. cookie保存的数据不能超过4K,某些浏览器对cookie的名值对数量有限制。
    参考文献
    1. https://segmentfault.com/a/1190000004743454#articleHeader9 (cookie)
    2. http://www.cnblogs.com/xdp-gacl/p/3855702.html (session)
    3. http://www.cnblogs.com/yunian/articles/5736066.html (cookie+session)

    相关文章

      网友评论

          本文标题:cookie和session

          本文链接:https://www.haomeiwen.com/subject/spdjqxtx.html