一,Session:含义:有始有终的一系列动作\消息
1, 隐含了“面向连接” 和“保持状态”两种含义
2, 一种用来在客户端与服务器之间保持状态的解决方案
3, 也指这种解决方案的存储结构“把××保存在session里”
二, http 协议本来是无状态的,所以引进了cookie和session机制来保持连接状态
cookie与session 机制之间的区别与联系:
cookie机制采用的是在客户端保持状态的方法
session机制采用的是在服务器端保持状态的方案,由于在服务器端保 持状态的同时必须要求客户端提供一个标识,
三,关于cookie机制
Cookie 的使用是由浏览器按照一定的原则在后台自动发送给服务器的,浏览器会检查
所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的http请求头上发送给服务器。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而保存在内存里的cookie,不同的浏览器有不同的处理方式,对于IE,在一个打开的窗口上按CTRL+ N(从文件菜单)打开的窗口可以与原窗口共享cookie,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie。
Cookie的内容包括: 名字,值,过期时间,路径和域
四,关于session的机制
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个请求是否含了一个session 标识(session id),如果有,则说明以前为该客户创建了一个session,服务器就按照session id把这个session检索出来用,一般一个cookie的名字就是类似于session ID,如果cookie被禁止的时候(cookie可以被人为的禁止),经常使用重写URL的方式,把session ID附加在URL路径后面,为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。
人们以为:“把浏览器关闭了,session 就小时了”其实不对,除非程序通知服务器删除一个session,否则服务器会一直保留,而程序一般都是在用户作log off的时候发个指令去删除session。人们之所以会产生这种错觉,是因为大部分session会采用cookie来保存session,而关闭浏览器后这个session就消失了,如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的http请求头,把原来的session id发送给服务器,则再次打开浏览器,其实是可以再次找到之前的session id的。所以设置失效时间可以起到一定的保护作用。
五,关于session的一些问题
1, session何时被创建: 不是在客户端访问时就被创建,而是在服务器端调用httpservletRequest.getSession(true)时才被创建。
2, session何时被删除: A,程序调用httpSession.invalidate(),B距离上一次收到客户端发送的session id时间间隔超过了session的超时设置 C,服务器进程被停止(非持久session)
3, 如何做到关闭浏览器同时关闭session: 严格说做不到,可以让所有的客户端页面使用window.onclose来监视浏览器的关闭东西,然后向服务器发送一个请求来删除session,但是对于浏览器崩溃或者强行杀死进程时仍然无能为力。
相关推荐
这篇学习笔记将深入探讨它们的工作原理、使用场景以及优缺点。 **Cookie** Cookie是一种在客户端(用户的浏览器)和服务器之间传递信息的技术。服务器在响应中设置Cookie,浏览器在后续的请求中携带Cookie返回。...
安全测试是IT领域中至关重要的一个环节,它旨在确保软件或系统在运行过程中免受恶意攻击,保护用户数据和系统安全。以下是一些关键的安全测试知识点: 1. **SQL注入**: SQL注入是一种常见的安全漏洞,攻击者通过...
### 学习cookie的笔记和总结 #### 一、什么是Cookie? Cookie是一种小型的数据文件,由服务器发送到用户的浏览器,并存储在用户计算机上的一种机制。它主要用于保存用户的偏好设置、登录状态等信息,以便用户再次...
一个NSURLSession实例代表一个会话,它可以包含多个任务(Session Task)。任务分为两种主要类型:Data Task和Download Task,它们各自有不同的应用场景。 1. Data Task: Data Task适用于获取小量数据或者需要在...
里面是一些用到的资源文件
本文实例讲述了Yii框架学习笔记之session与cookie操作。分享给大家供大家参考,具体如下: session操作 <?php namespace app\controllers; use yii\web\Controller; class HelloController extends ...
此外,它还有内置的州管理机制(ViewState、Session、Cookie等),用于在用户交互过程中保持数据。 在实际开发中,Visual Studio作为主要的IDE,提供了强大的集成开发环境,包括代码编辑、调试、部署等功能。同时,...
笔记可能探讨了ViewState、Session、Cookie等状态管理机制,以及何时选择何种方法。 7. **缓存技术**:为了提高性能,ASP.NET提供了多种缓存策略。笔记可能涉及了Output Cache、Page Output Cache、Fragment ...
本文将详细介绍 Python 爬虫学习笔记的知识点,涵盖爬虫基础、网络和前端基础、Requests 模块、请求头、GET 和 POST 请求、代理、Cookie 模拟登录、Quote 和 Unquote、登录和获取 Cookie、Post 和 Session、重试机制...
### Servlet学习笔记精炼知识点 #### 一、Servlet初始化与加载机制 1. **Servlet注册与实例化**:在Web应用中,一个Servlet的生命周期始于它的注册与实例化过程。通常,这一过程是在Web服务器启动时,根据`web.xml...
由于直接学习笔记的内容没有给出具体的实例代码和详细解释,所以这里只提供了理论层面的知识点。如果需要学习具体实现,可以寻找相关的教程和项目实践来加深理解。同时需要注意的是,由于JSP/Servlet技术相对老旧,...
cookie和session是web开发新手容易搞混的两个概念,弄清楚两者有助于对web交互更好的理解。个人认为session和cookie的区别主要有如下几点...例如用户登录是一次session交互,在ATM机取钱是一次session交互,等等。 ses
本学习笔记中的代码示例将引导你完成从零开始搭建一个具备用户认证和授权功能的Spring Boot项目,通过实际操作加深对Shiro的理解和应用。 总的来说,Apache Shiro是一个功能全面的Java安全框架,它简化了安全开发的...
- Cookie、Session、Application: 分别用于客户端、会话和应用程序级别的状态管理。 ### 5. 数据库操作 - **使用ADO.NET访问数据库**: - 引入`System.Data.SqlClient`命名空间。 - 创建`SqlConnection`连接...
2. Token的存储:Token可以存储在session或cookie中,但session更安全,因为cookie可能会被用户禁用或篡改。 3. 错误处理:对于Token验证失败的情况,应提供友好的用户反馈,告知用户重新操作。 通过深入理解和实践...
- 安全性:Session将数据存储在服务器端,相比存储在客户端的Cookie,更安全,不易被篡改。 - 资源消耗:Session需要服务器存储,因此占用更多服务器资源;而Cookie由客户端管理,服务器压力较小。 - 使用原则:...
内容涵盖会话技术的应用、会话跟踪方案的选择,以及两种常见的会话跟踪机制:cookie和session。同时,文章还介绍了jwt(json web token)令牌的使用,包括生成和校验jwt的过程,如何将jwt用于登录流程,并详细说明了...