【JavaWeb】带图认识Cookie和Session

【前言】                

     接触了这么长时间的web开发,问个问题。什么是会话?

     会话会话,就像你拿起电话拨号打电话又挂电话一气呵成的整个过程。在浏览器中呢,就是用户打开一个浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器。整个过程称为一个会话。

     保存会话数据的两种技术为cookie和Session。本篇博客简介cookie和session实现原理和区别对比。希望可以给读者带来收获~

【Cookie】

     Cookie 是客户端技术,程序把每个用户的数据以cookie的形式,给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据。这样,web资源处理的就是用户各自的数据了。


以购买商品为例,看看cookie实现原理:

                      

     一个cookie只能标识一种信息,至少含有一个标识该信息的名称和设置值。

     一个web站点可以给一个web浏览器发送多个cookie,一个web浏览器也可以存储多个web站点提供的cookie。浏览器一般只允许存放300个cookie,每个站点最多存放20个cookie,每个cookie大小限制为4KB。

      如果创建了一个cookie,并将它发送到浏览器,默认情况下它是一个会话级别的cookie。用户退出浏览器之后即被删除。如果希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0,则是命令浏览器删除该cookie。


【Session】

     Session 是服务器端技术,服务器再运行时,可以为每一个用户的浏览器,创建一个其独享的session对象。由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再访问服务器中其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。


以购买商品为例:   

                   


      web开发中,服务器可以为每个用户浏览器创建一个session对象。一个浏览器独占一个session对象。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

      那么,服务器怎么知道应该调用哪个session呢?服务器时如何实现一个session为一个用户浏览器服务的呢?
      每个session创建的时候都会有一个ID,ID会通过cookie回显给浏览器。所以,session一定意义上又是基于cookie的。
         
session和cookie的主要区别:
cookie是把用户的数据写给用户的浏览器。
session技术把用户的数据写到用户独占的session中。

大型商务网站大多选用cookie,session占用内存太大。


【小结】

    对于cookie和session的实现原理有了一些了解,希望在今后的学习中不断加深理解~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值