Cookie的原理

本文详细解释了Cookie和Session的存储机制与工作原理,包括它们如何在客户端和服务器之间保持状态,以及如何通过Cookies和URL重写实现Session。重点讨论了Cookie的类型、作用与生命周期,以及Session的创建、实现方式和过期机制。

Cookie的原理

浏览器要访问服务器里面的文件,只要在浏览器里面写这个文件名,写服务器的地址,写端口号,写http,要想传参数,直接在地址里面传,或者通过post方式来传。

 

http协议的无连接性,要求出现一种保存c/s间状态的机制

 

通过浏览器访问网页1,买了一个东西(登陆了),当我们从服务器拿下我么的内容之后,浏览器到服务器的连接就断掉了(无连接性);买完东西(登陆后)去另外一个页面网页2结账,所以去第一个页面买的东西要保存下来。

怎么保存第一个页面买东西的记录呢?

答案:把买东西的记录写在客户端。服务器端在客户端写入的东西,就叫做cookie

当结账的时候,网页2就会到客户端把第一个页面保存在客户端的记录拿出来,即把cookie拿到,然后结账。

1服务器可以向客户端写内容,只能是文本内容。(不能写其他的文件,否则会不安全)

2客户端可以阻止服务器端写入。

3.服务器端只能拿自己webapp写入的的东西。(网页2结账时,需要从客户端取出记录,然后结账)

4.cookie就是服务器端写入客户端的这些个小文本的信息。Cookie以“名-值”对的形式保存数据。

5.登陆后两个星期不用再登陆。就是服务器把信息保存在了客户端的cookie里面了。

 

Cookie分为两种:(1)属于窗口(子窗口)(2)属于文本的

 

一种写在文件里,一种是相当于你写入内存里,只要你把浏览器关掉,这个cookie就消失。服务器端写在客户端,如果设置了生存周期,会写在我们的文件里面,如果没有设置,他会写在我们客户端的内存里面。当浏览器窗口一关,

这个cookie就消失了。

==========================================

Session的工作原理 :记录在服务器

 

 

原理:

 

当浏览器访问某个页面时,会在服务器端开辟一块内存,而这块内存是跟你的浏览器窗口(子窗口)关联到一起的。

 

只要我愿意的话,我会给你的浏览器来建立一个session,然后这个session只能由你这个浏览器来访问。

 

另外一个浏览器也想记录自己的状态,怎么办?再起一个单独的session,来和我们这个浏览器关联在一起。

 

 

 

理解:你访问我第一个页面时,我给你的浏览器创造独一无二的号码,我也给你创建的session赋予同样的号码,在服务器端记录着一系列的session,当你在访问第二个页面时,请你把号码发给我第二个页面,我第二个页面再找你这个号码和我们原来session2对应的那个session2。这个号码就叫做sessionId

 

Session的两种实现方式:1)通过Cookies来实现2)通过url重写来实现

 

 

 

所谓通过Cookies来实现说的是什么意思?

 

 

 

每一个客户端你要想支持session的话,你必须在访问我的页面的时候把你的sessionID传递给我。你怎么样才能把这个sessionID传递给我呢?

 

 

 

 1)通过Cookies来实现:我们可以把这个sessionID存在Cookies里面。存在临时的内存里面,浏览器窗口关了,sessionID就不需要了,浏览器窗口关了,永远不会有人来访问你这个浏览器对应的session.如果浏览器支持Cookies(可以通过设置浏览器不让支持Cookie),创建session时就会把sessionID保存在Cookie里面。(如果不允许Cookie,在IE里面可能禁掉,在fireFox里面禁掉的话,当刷新时,sessionID就会不断的变化,说明Cookie里面没有保存Session)

 

 

 

(2)登陆邮箱的例子来理解session登陆的页面和读邮件的页面是两个页面,那么读邮件的页面怎么知道这是你的邮件呢?那只有一个办法,你在登陆完成这个页面(登陆的页面)之后,他给你一个sessionId,你再访问后面的页面时,每次把这个sessionID带上,他就知道原来是你登陆进来的。

 

当你在访问大公司的页面时,比如新浪邮箱,你如果把浏览器的Cookie禁用了,登陆的时候sessionID就存不进去了,新浪邮箱又没有设置encodeURL,所以只能重新设置Cookies

 

 

 

(3)在tomcat默认conf目录下面webapp默认的设置session的过期时间是30分,也就是说超过30session就不能用了。对所有的webapp都适用,你可以通过下面这段代码设置。<session-config> <session-timeout>30</session-timeout></session-config>

 

 

 

4)两个窗口的sessionID号永远不可能相等,除非一个窗口是另一个页面的子窗口。

 

 

(本文摘自:http://www.cnblogs.com/200911/archive/2012/05/02/2479880.html

 

先看效果: https://renmaiwang.cn/s/jkhfz Hue系列产品将具备高度的个性化定制能力,并且借助内置红、蓝、绿三原色LED的灯泡,能够混合生成1600万种不同色彩的灯光。 整个操作流程完全由安装于iPhone上的应用程序进行管理。 这一创新举措为智能照明控制领域带来了新的启示,国内相关领域的从业者也积极投身于相关研究。 鉴于Hue产品采用WiFi无线连接方式,而国内WiFi网络尚未全面覆盖,本研究选择应用更为普及的蓝牙技术,通过手机蓝牙与单片机进行数据交互,进而产生可调节占空比的PWM信号,以此来控制LED驱动电路,实现LED的调光功能以及DIY调色方案。 本文重点阐述了一种基于手机蓝牙通信的LED灯设计方案,该方案受到飞利浦Hue智能灯泡的启发,但考虑到国内WiFi网络的覆盖限制,故而选用更为通用的蓝牙技术。 以下为相关技术细节的详尽介绍:1. **智能照明控制系统**:智能照明控制系统允许用户借助手机应用程序实现远程控制照明设备,提供个性化的调光及色彩调整功能。 飞利浦Hue作为行业领先者,通过红、蓝、绿三原色LED的混合,能够呈现1600万种颜色,实现了全面的定制化体验。 2. **蓝牙通信技术**:蓝牙技术是一种低成本、短距离的无线传输方案,工作于2.4GHz ISM频段,具备即插即用和强抗干扰能力。 蓝牙协议栈由硬件层和软件层构成,提供通用访问Profile、服务发现应用Profile以及串口Profiles等丰富功能,确保不同设备间的良好互操作性。 3. **脉冲宽度调制调光**:脉冲宽度调制(PWM)是一种高效能的调光方式,通过调节脉冲宽度来控制LED的亮度。 当PWM频率超过200Hz时,人眼无法察觉明显的闪烁现象。 占空比指的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值