发表于: 2018-04-05 23:35:28

1 711


一、今天完成的事情



1、深入了解cookie和session的机制,下次小课堂讲讲这个,也为复盘项目中解决HTTP无状态的问题提供方法


一个例子说明他们的区别和联系


星巴克开始优惠活动,每消费10杯咖啡,会免费赠送1杯。考虑到一个人一次性消费10杯咖啡几乎不可能,所以需要采取某种方式来记录顾客的消费数量。


有三种方案:

1,店员很厉害,每个顾客的消费记录都记得一清二楚;

2,分给顾客一张卡片,每消费一次记录一次;

3,发给顾客一张卡片,上面有卡号,顾客每消费一次,由店员在操作机上记录一次。


分析:方案一的可执行性几乎为0。方案二和方案三我们都见过。而方案二和三正是对应的客户端记录和服务端记录。与之相对应的正是cookie和session。



我对Cookie的理解:

       由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie,Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie,客户端浏览器会把Cookie保存起来。当

浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改

Cookie的内容,实际就是颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的

工作原理



我对Session的理解:

      cookie 可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些 Cookie,如果 Cookie 很多,这无形地增加了客户端与服务

端的数据传输量。而 Session 的出现正是为了解决这个问题。同一个客户端每次和服务端交互时,不需要每次都传回所有的 Cookie 值,而是只要传回一

个 ID,这个 ID 是客户端第一次访问服务器的时候生成的,而且每个客户端是唯一的。这样每个客户端就有了一个唯一的 ID,客户端只要传回这个 ID 就行

了,这个 ID 通常是 NANE 为 JSESIONID 的一个 Cookie。

     Session机制是一种服务端的机制,服务器使用一种类似散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首

先检查这个客户端里的请求里是否已包含了一个session标识--sessionID,如果已经包含一个sessionID,则说明以前已经为此客户端创建过session,服务

器就按照sessionID把这个session检索出来使用,如果客户端请求不包含sessionID,则为此客户端创建一个session并且声称一个与此session相关联的

sessionID,sessionID的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串(服务器会自动创建),这个sessionID将被在本次响应中返回给客户

端保存。




cookie和session的特点(缺点):


      使用cookie的缺点:如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端,cookie可以被用户禁止,cookie不安全(对于敏感数据,需要加

密)。只能保存少量的数据(大约是4k),cookie的数量也有限制(大约是几百个),不同浏览器设置不一样,但是都差不多,cookie按规定只能保存字符串。


      使用session的缺点:session是基于cookie而存在的,当cookie被禁止时,session也会被禁止,除非使用url重写。当用户访问量很大时,对服务器压

力大,我们现在知道session是将用户信息储存在服务器上面,如果访问服务器的用户越来越多,那么服务器上面的session也越来越多, session会对服务器造

成压力,影响服务器的负载.如果Session内容过于复杂,当大量客户访问服务器时还可能会导致内存溢出。某些负载均衡情况下,session可能会起不了作

用。






cookie和session的区别:


     具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时由于采用服务器端保持状态的方案在

客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。cookie不是很安全,别人可以分析存放在本地的cookie

并进行欺骗性修改,考虑到安全应当使用session。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器

性能方面,应当使用cookie。单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。可以将登陆信息等重要信息存放为

session。



暂时就这么多 明天继续看





2、大致分析了以下复盘所需时间和原型图中各个模块的内容


两个后端要做190个接口,初步计划将用户和课程两大模块细分,分摊到我和小伙伴身上,这样既可以达到锻炼的目的,也能增强配合沟通能力






二、明天计划完成的事情


1、完成小课堂的准备,再看看里面有什么值得深挖的东西


2、全面分析复盘项目


3、学习一下Java基础:hashmap




三、遇到的问题


1、看了以下师兄们的小课堂,讲得真好,不仅仅是内容,而是思维方式的问题,许多优秀师兄的思维方式值得借鉴


2、复盘项目有点大,需要非常努力才能做完,明天开始更加加油吧




四、收获


如上所述


http://task.ptteng.com/zentao/project-task-488-unclosed.htm



返回列表 返回列表
评论

    分享到