美文网首页
Cookie作用、安全性问题、和Session的比较

Cookie作用、安全性问题、和Session的比较

作者: 第四单元 | 来源:发表于2019-04-27 13:14 被阅读0次

    是什么

    Cookie是服务的发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后的请求中发送给服务器,用户告知两个请求来自同一浏览器。

    作用

    HTTP请求是无状态的,使用Cookie可以用来保存状态信息。
    例如可以用来保存Session ID

    Cookie曾用作客户端数据的存储,但现在新的浏览器已经支持各种方式的本地存储,如storage API或Indexed DB,Cookie已经被淘汰了。

    创建过程

    服务器发送的相应报文包含Set-Cookie首部字段,客户端得到相应报文后把Cookie内容保存到浏览器中。

    HTTP/1.0 200 OK
    Content-type: text/html
    Set-Cookie: sessionID=343255390
    Set-Cookie: tasty_cookie=strawberry
    
    [page content]
    

    客户端之后对同一个服务器发送请求是,会从浏览器取出Cookie信息并通过Cookie请求首部字段发送给服务器。

    GET /sample_page.html HTTP/1.1
    Host: www.example.org
    Cookie: sessionID=343255390; tasty_cookie=strawberry
    

    生命周期

    可对Cookie设置过期时间,若不设置则默认为浏览器会话期间,关闭浏览器窗口,cookie就消失。

    安全性

    设置Secure=true的Cookie只能通过Https协议发送。

    Cookie和Session的比较

    与Cookie不同Session是保存在服务器上的。通过名为JSESSIONID的Cookie保存session id。

    1.存取方式不同

    Cookie只能报关ASCII字符串
    Session能够存取任何类型的数据,如Java对象等

    2.隐私策略不同

    Cookie存储在浏览器中,对浏览器是可见的,客户端的一些程序可以查看、复制甚至修改Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露风险

    假如使用Cookie存储账号密码等信息,最好进行加密后再存储,提交到服务器后再进行解密。

    3有效期不同

    Cookie可设置过期时间。默认是浏览器关闭。

    Session依赖于名为JSESSIONID的cookie,而该Cookie的过期时间为-1,表示只要关了浏览器就过期,而该服务器上的对应session也就失效了。假如设置session的超时时间过程,服务器累计的Session就会越多,越容易招致内存溢出

    4.服务器压力不同

    Session保存在服务器上,每个用户都会产生一个session,假如并发用户十分多,会产生十分多的session,消耗大量的内存。

    Cookie保存在客户端,不占用服务器资源。

    5.浏览器支持不同

    Cookie是需要浏览器支持的。假如浏览器禁用了cookie,则不能使用cookie

    6.跨域支持上的不同

    Cookie支持跨域访问。Session不支持

    资料1

    资料2


    如果本文对您有帮助,欢迎关注我的原创微信公众号“Java技术小站”第一时间接收我的更多文章

    Java技术小站.png

    相关文章

      网友评论

          本文标题:Cookie作用、安全性问题、和Session的比较

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