cookie和session的区别

cookie通过扩展http的协议,将需要传达的信息设置在http协议的头信息里,包括名称值对、日期、路径和域,路径和域组成cookie的作用范围,由客户端在后台按照按照一定的规则发送到服务器。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。cookie信息保存在客户端中。

session提供了跟踪客户端信息的一种机制,session信息保存在服务器中。当某个客户端请求创建一个session时,服务器首先检查客户端的信息中是否含有session标识(session id),如果存在,则证明已经为该客户端创建过session,服务器按照session id检索出已创建的session进行使用。如果不存在,则为该客户端创建session且生成一个唯一的新的session id作为标识。保存这个session id可以用cookie,在cookie被禁止的时候可以用一种叫做“url重写”的技术,即在url后加上sessionid。


cookie和session的不同:

1、存取数据类型不同

cookie只能保存askii字符串,如果要保存unicode字符或二进制数据,首先进行编码。

//对中文编码解码
String   str   =   java.net.URLEncoder.encode("中文","UTF-8");            //编码
String   str   =   java.net.URLDecoder.decode("编码后的字符串","UTF-8");   // 解码

session则可以保存任何类型的数据,可以把session看作一个容器类。

2、隐私策略不同

cookie保存在客户端中,对客户端是可见的;session则保存在服务器中,对客户端是不可见的。

3、信息储存的有效期不同

cookie可以实现长期保存;session的存储时间依赖于名为JSESSIONID的cookie,过期时间默认为-1,因此关闭客户端浏览器之后该session就会失效,而且,设置session的时间越长,服务器储存的session信息越多,越容易造成内存溢出。

4、服务器压力不同

cookie保存在客户端,不占用服务器资源,像是Google、baidu等并发访问量过大的网站都是用cookie保存用户信息;session保存在服务器,保存session信息越多,压力越大。

5、浏览器支持不同

假如客户端支持Cookie,则Cookie既能够设为本浏览器窗口以及子窗口内有效(把过期时间设为–1),也能够设为一切阅读器窗口内有效(把过期时间设为某个大于0的整数)。但Session只能在本阅读器窗口以及其子窗口内有效。假如两个浏览器窗口互不相干,它们将运用两个不同的Session。

6、应用场景不同

cookie用于跟踪回话,也可用于保存用户账户密码、喜好设置等;

session用于跟踪回话。

实际应用中,往往将二者搭配使用。

python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值