Session和Cookie的作用以及实现
更新时间:2023-11-07 13:36:01 阅读量: 教育文库 文档下载
Session和Cookie的作用以及实现
最近学习Session和Cookie的总结,我发现好多做测试的朋友对这个的理解不是那么透彻;如果理解了Cookie和session的原理和使用,在我们的测试工作中,有很大的帮助;尤其是在接口测试,性能测试中。。。
我把下面的内容做成了一个pdf文档,有需要看的朋友,可以去百度云盘下载,地址在文章的最后:
内容如下:
一、为什么要用Cookie和Session?
很多时候客户端和服务器进行交互使用了HTTP协议,但是HTTP协议是无状态的;HTTP协议的请求过程,是基于 TCP/IP 的,当客户端请求服务器,服务器处理后,进行响应,该过程是无状态的。
但是在有些时候是需要保存一些客户端的请求信息,识别客户端的某些状态,智能的、有针对性的去分析某些客户端的习惯。这些时候,就需要去记录客户端的连接状态,识别请求的状态等。所以为了解决类似的事情,就需要使用到了 Cookie 和 Session。
比如,使用Cookie的场景:有些网站有记住用户名的功能,当你勾这个的时候,下次进入该网站时,就会保存上一次登录的用户名;使用Seesion的场景:利用Seesion来验证用户是否已登录,利用Session来保存验证码。
二、Cookie和Session是什么?
(1)Cookie:在客户端访问某个地址时,会将请求交到服务器进行处理,在发送请求的时候,浏览器会将页面的头部信息一并的交到服务器端进行处理。在处理的过程中,Cookie 在服务器端生成 ,在此同时,可以将一些需要保存的信息,存放到此 Cookie 中。生成 Cookie 对象时,需要确定具体的名称及具体的值,可以设置当前 Cookie 的过期时间,设置过期时间后,就相当于持久化了 Cookie 中的数据,此时的 Cookie 会以之前的 Cookie 名称,保存在客户端。
如果不设置过期时间,则当前 Cookie 的生命期是浏览器会话期间,一旦关闭了该浏览器,当前的Cookie 就会不存在了,此时的 Cookie 信息是保存在内存中。在服务器端,处理完后,会将生成的 Cookie ,随着 Http 响应,会在 Http 响应头中,加上Cookie 信息,浏览器接受到响应后,会按照 Http 响应头里的 Cookie ,在客户端建立 Cookie 。在下次客户进行请求的时候,Http 会附带着已经存储过的 Cookie,一并发送到服务器。一个域,在客户端建立的所以 Cookie 都是可以共享的,只要 Cookie 没有过期。
(2)Session:Session 是在服务器端生成的,存储在服务器端,即存在内存中。可以对生成的 Session 设置过期时间,如果不设置过期时间,默认的 Session 过期时间是30 分钟(在不同的服务器中,它的过期时间略有不同,本文是以 Tomcat 来说的) 但是,Sesssion 的生成的同时,会生成一个与之相关联的的 SessionID ,此 SessionID的存储是需要 Cookie 来完成的。 SessionID 是以名称为 JSESSIONID,其值应该是一个既不会重复,又不容易被找到规律以仿造的字符串。SessionID会随着此次 Http 响应,一并返回到客户端,并保存在客户端中。到当前请求再次发出后,该 SessionID会随着 Http 头部,传到服务器中,服务器依据当前 SessionID 得到与之对应的 Session.
其中:通过 Cookie 的方式存储 Session 状态,只是其中一种方式。如果客户端禁用了 Cookie 的话,很多网站任然可以存储用户的信息。一种处理的方式是URL 重写,将 SesseionID 直接附加在请求地址的后面。另一种处理的方式是,使用隐藏自动的方式。就是服务器自动的在表单中,添加一个隐藏字段,以便在表单提交时,将 SesseionID 一起传到服务器,进行识别。
(3)总结下:Cookie是存在客户端的,比如我们电脑的本地文件中(设置的过期时间的话),在我本地的话(C:\\Users\\xxx\\AppData\\Roaming\\Microsoft\\Windows\\Cookies):
也可以在浏览器中看(chrome):
Session是存在服务器端的(我的apche也安装在本地的):
发送请求的时候Cookie会自动把Seesionid带上:
三、怎么使用Cookie和Session?
首先说明下,下面用的是php来写的,之所以写这个过程是加深对Cookie和Session的认识,不会光看理论那里比较抽象。
1、完成Cookie完成记住用户名的功能: ①第一个场景:
输入用户名,选择保存用户名-->提交-->打印设置Cookie成功-->返回登录页面-->用户名会自动填写(只要访问该登录页面,在Cookie有效期内)
这中间设置的Cookie可以在浏览器中查看的:
名字为userName,值为:xiaoshitou,保存时间为:1小时
②第二个场景:
输入用户名,不选择保存用户名-->提交-->打印删除Cookie成功-->返回登录页面-->用户名的值为空(设置的Cookie会被清空)
③代码如下:
(两个文件:saveUserNameView.php、saveUserNameProcess.php):
saveUserNameView.php:(登录页面的代码) 复制代码 1
3 * Created by PhpStorm. 4 * User: LSH 5 * Date: 2016/11/25 6 * Time: 11:12
7 */ 8 ?> 9 10
11 保存用户名 13 14
15
登录页面
16
正在阅读:
微观经济学第五版部分习题参考答案102-03
小教一级述职报告09-26
关于某创新型金融服务公司中的激励机制11-09
高中学生代表演讲稿讲话稿600字06-01
银行业金融机构安全评估办法讲义04-03
班主任结对帮扶方案2017秋学期05-05
房地产装饰装修合同(通用2篇)03-22
大学物理 刚体力学基础习题思考题及答案06-11
LED产品节能认证技术规范03-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 以及
- 作用
- Session
- 实现
- Cookie
- 暑期社会实践大学生感恩回报攀枝花总结1
- 重铬酸钾电位滴定硫酸亚铁铵溶液
- 德语动词搭配大全
- 触摸式密码电子锁的设计与制作 - 图文
- 最新2018201X年党建目标管理责任书-word范文(6页)
- 2000国家大地坐标系技术指南
- 保险营销员管理办法(2015年修订)C版
- 2019高考人教版历史一轮复习讲义: 选考部分 选修3 20世纪的战争与和平
- 《荆轲刺秦王》优秀教学设计
- 2016级初三下期物理培优试题1
- 90省级智能图像侦查系统解决方案
- 中国舞等级考试教材第二级
- 多传感器火灾报警系统设计
- 2015年高考模拟语文试题4
- 第五单元练习题二(1) - 图文
- 2019年最新初中中考数学模拟试卷及答案9594813
- 管理学 - 名词解释、简答、论述
- DH4518交流电桥(1)
- 2013年电工考证题库11
- 卡特3600系列发动机控制电路电源的检查 - 图文