关于Cookie和Session简单的讲解

敲可耐的我 2019-06-17 09:23:46
关于Cookie和Session简单的讲解
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本次任务完成时间:2019年06月18日
作者:邱青菁
开发工具与关键技术:Visual Studio 2015 &&关于Cookie和Session简单的讲解
展示效果:关于Cookie和Session简单的讲解
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本章内容是关于Cookie和Session的,我将给大家讲解什么是Cookie?什么是Session?还有他们之间的区别;在程序中,会话跟踪是很重要的事情。理论上,一个用户它的所有请求操作都是属于同一个会话,而另一个用户它的所有请求操作是属于另一个会话,他们两个是不能弄混的。会话可以简单的理解为用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程就是一个会话。

而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。要跟踪该会话,必须引入一种机制:Cookie机制。
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,

cookie规范定义了服务器和客户端交互信息的格式、生存期、使用范围、安全性。Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。

Cookie已经成为标准,所有的主流浏览器都支持Cookie。如IE、Netscape、Firefox、Opera等


图片源于老师所发文档

Cookie通常用来存储一些不是很敏感的信息,或者进行登录控制,也可用来记住用户名、记住免密码登录、防止刷票等。每个域名下允许的Cookie是有限制的,根据浏览器这个限制也不同。Cookie不是越多越好,它会增加宽带,增加流量消耗,所以不要滥用Cookie;不要把Cookie当作客户端的存储器来用。

除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

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

他们之间的区别:
1、 Cookie数据是存放在客户的浏览器上,Session数据放在服务器上。
2、 Cookie不是很安全,因为别人可以分析存放在本地的Cookie并进行Cookie欺骗,所以需要使用更安全的Session机制。
3、 Session会在一定时间内存储在服务端上。如果访问增多,就会占用你自己服务器的性能,想要减轻服务器的性能方面,可以使用Cookie
4、 一个Cookie保存的数据不能超过4KB。大部分浏览器都限制一个站点最多可以存储20个Cookie。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

注意:在同一个页面中设置 Cookie,实际上是按从后往前的顺序进行的。如果要先删除一个 Cookie,再写入一个 Cookie,则必须先写写入语句,再写删除语句,否则会出现错误 。修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。









图片源于老师所发文档
以上就是全部内容
...全文
31 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

488

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧