- 浏览: 534049 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
rgqancy:
终于明白为啥XML里要带jdbcType=XXXX了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
rzh0001:
Thanks a lot
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
guji528:
学习了,谢谢
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
AKka:
彻底清楚这个错误的原因了。向楼主学习了。
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201 -
远去的渡口:
武汉小吃,我最爱热干面和鸭脖,想念啊~~
过年时候还学习编程, ...
过年的心情
关于JSessionID
在servlet规范中,HttpServletSession的获取时通过调用request.getSession(boolean createnew)方法来实现,其实现机制可以简单的理解为: 存在一个大的hashMap结构,key就是jsessionid,而valule是HttpservletSession对象。 request.getSession(boolean createnew)方法通过jsessionid来获取对应的HttpservletSession,如果不存在并且参数createnew= true,则创建一个新的HttpservletSession对象,并设置jsessionid=session.getId() ,保存到hashMap结构中。以后再传递这个jsessionid.
jsessionid的传递可以是以下途径
1. 放在cookie中
Cookie: JSESSIONID=abcrmF3Gx-5Z-hhkgHfzr
2. 以参数形式放在url
http://10.3.2.35:11280/wmail/welcome.action?jsessionid=abcQNqiT4C01rg-necLBr
3. 用form表单传递,通常是用隐藏域
<input type="hidden" name="jsessionid" value="abcQNqiT4C01rg-necLBr"/>
4. url重写
http://10.3.2.35:11280/jid=abcQNqiT4C01rg-necLBr/wmail/welcome.action
或者
http://10.3.2.35:11280/wmail/welcome.action;jsessionid=abcQNqiT4C01rg-necLBr
如果当前还没有jsessionid则当然就无法获取,通常用户第一次访问或者登录前就是这种情况.
可以通过request.getRequestedSessionId() 方法来获取本次http 请求的jsessonid值。
获取到的HttpServletSession对象
如果HttpServletSession对象是已经存在的,则
1. session.isNew()=false
2. request.getRequestedSessionId() == jsessionid == session.getId()
如果HttpServletSession对象是调用request.getSession(true) (简写的request.getSession()方法等同于request.getSession(true) )时新创建的,则有以下特征:
1. session.isNew()=true
2. 以后传递的jsessionid=session.getId()
注意这里,如果request.getRequestedSessionId() 是空值,情况比较简单,以后传递jsessionid=session.getId()就是了。
但是如果request.getRequestedSessionId() 不是空值,通过这个值没有获取到已经存在的session对象,而是返回了一个新的session对象,这个时候新的session.getId()和原有的request.getRequestedSessionId() 关系如何呢?下面详细阐述这种情况。
比较JsessionID和Cookies
http本身是无session的,无法跟踪客户端的信息,换句话说:http协议不管是谁联接自己。
为了实现session,必须有浏览器支持。浏览器可以用cookie存储session,这是最通用的做法。
但是,如果我自己写一个完全符合http协议的浏览器,但是不配合服务器的session要求,那么服务器就无法产生session。
好在现在的浏览器都支持session要求,即使关闭了cookie,浏览器也会向服务器传递sessionid,这个id是存储在浏览器的内存空间中的,不保存在硬盘cookie中。
session是在服务器端保存。服务器根据url请求中的session_id来查找对应的session。
以一个bbs为例,网站需要根据每个请求url获取用户的信息,如果以cookie方式,用户信息全部是存放在cookie中的,这样可能会不安全;如果以session方式,用户信息可以存放在服务器端,服务器只要从http请求中得到session_id,就可以得到存放在session中的用户信息了,这样安全性比较高。session在服务器中的表现方式依服务器而定,可能是写到临时文件中,也可能直接放在内存中。
服务器从http请求中得到session_id的方式有两种:cookie和url重写。如果客户端启用cookie,那么session_id可以保存在cookie中;如果禁用cookie,就用url重写方式,在url中添加.jsessionid=xxxxx参数部分,服务器会试图从url中得到.jsessionid参数作为session_id.
在http的报文格式里面cookie和session是在同一个包文位置上的
如果ie发现包文里面包含cookie/session的信息的话,他会根据安全级别来决定是否保存相关信息,比如,如果安全机制允许使用cookie那么ie将把cookie的信息保存到临时文件里面,每次在请求服务器文件的时候会把收到的session的信息加入到请求的报文里面,这就是session保存信息的原理。如果安全机制不允许使用cookie的话,虽然ie收到了cookie和session的信息,那么cookie的信息不会被写入临时文件,当ie再次请求服务器文件的时候,也不会把收到的session的信息加入到请求报文里面,服务器就无法知道session的信息了。
Cookie工作原理
session是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(通常所说的Cookie).Session Cookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。
通常Session Cookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在Persistent Cookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过Session Cookie和Persistent Cookie的结合,实现了跨窗口的会话跟踪。
session的工作原理
就session的实现而言,好像是这样的:
(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。
(2)然后,服务器开辟一块内存,对应于该SessionID。
(3)服务器再将该SessionID写入浏览器的cookie(一些在网页的源代码中有所体现)。
(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放该内存块。
(5)当浏览器连入IIS(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器)就读浏览器Cookie中的SessionID。
(6)然后,服务检查该SessionID所对应的内存是否有效。
(7)如果有效,就读出内存中的值。
(8)如果无效,就建立新的Session。
注意:
(1)在大浏览量的网站,Session并不保险,我们过去的网站就经常碰到存在Session中得值不正确(可能出现重复的Session ID)。
(2)Session ID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的Session ID,只能通过Javascrīpt来读取。
Cookie和会话状态
做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址!
什么是 Cookie?
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 Cookie 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。
Cookie 有哪些用途?
最根本的用途是:Cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您.
什么是会话Session?
当用户访问您的站点时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束。
发表评论
-
四位计算机的原理及其实现
2015-09-05 19:23 942你是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原 ... -
ubuntu13.04安装mysql5.6RPM包1、使用的安装包MySQL-5.6.12-2.l
2014-11-20 23:08 1032ubuntu13.04安装mysql5.6 RPM包 1、 ... -
字典树相关代码
2014-08-10 18:21 1012package com.myway.study; i ... -
两有序数组求交集
2014-05-01 00:27 1082package com.myway.study; i ... -
JVM垃圾收集器异同
2014-04-22 09:48 1270VM 垃圾收集器有3类,这里主要介绍我们常用的 并行和并发收集 ... -
idea 11 如何实现热部署
2014-02-17 13:37 1045idea 如何配置 热部署呢? 如图: 然后配置 t ... -
java位操作符总结
2013-08-04 20:42 938二进制负数以它正值的 ... -
快速排序简要算法
2013-07-21 22:21 1113package math; import jav ... -
memcached安装
2013-03-10 09:32 4864今天 ,心血来潮 想安装下memcached 先给自己测试一下 ... -
温习温习 aop的原理
2013-02-11 22:23 1449在我工作这几年里,spring aop 用得最多的有两点 1 ... -
URL编码以及GET和POST提交乱码解决方案
2012-09-14 16:59 16981. 什么是URL编码。 ... -
Struts2 IF 判断 SESSION值
2012-08-16 15:12 1212<s:if test="ticke ... -
@me 如何处理
2012-07-28 22:37 1170红薯 分享了这个代码 ,我觉得很好 在这个社区与大家分享 。 ... -
mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
2012-07-27 22:59 161806前天遇到一个问题 异常显示如下: 引用 Exception i ... -
猜测 javaye的分页设计
2012-07-05 21:32 1150非常喜欢javaeye的分页 ,自己也写了一个 按照逻辑测试了 ... -
java控制事务级别
2012-06-18 20:40 1171JDBC事务并发产生的问题和事务隔离级别 原子操作使用事务,一 ... -
ibatis / mybatis 存储过程调用 区别 以及例子
2012-06-11 21:16 1596ibatis: 如下: xml配置文件: 请看 ... -
java timerTask timer分析
2012-06-07 20:37 1571首先看一看 timer timerTask如何调用 ? ... -
MapWrapper 学习
2012-01-04 16:25 1583MetaObject 有一个 setValue方法 这个方 ... -
mybatis 学习
2011-12-24 22:59 2458这篇博客是我学习mybatis的心得。也是对自己的鞭策。 这些 ...
相关推荐
SYN Cookie原理与Linux内核实现详解 SYN Flood攻击是一种常见的分布式拒绝服务(DoS)攻击手段,尤其在网络环境基于IPv4的TCP/IP协议栈中。这种攻击利用TCP协议的三次握手流程,通过发送大量伪造源地址的SYN请求,...
cookie 原理解析 Cookie 是一种机制,用于弥补 HTTP 协议无状态的不足,实现会话跟踪。Cookie 是由 W3C 组织提出,最早由 Netscape 社区发展的一种机制。目前 Cookie 已经成为标准,所有的主流浏览器如 IE、...
"COOKIE注入原理动画教程" 这个标题明确指出了我们要学习的主题——COOKIE注入的原理,而且是以动画的形式进行教学。这表明我们将通过动态、视觉化的方式了解这个网络安全中的概念。 **描述分析:** 描述简单明了,...
【Session与Cookie原理简述】 Session和Cookie是两种在Web开发中常见的用户状态管理机制,它们主要用于在HTTP协议无状态的特性下跟踪用户状态。理解它们的原理对于编写高效的Web应用至关重要。 **Cookie原理** ...
了解Cookie的工作原理和特性对于Web开发至关重要,尤其是在处理用户认证、保持会话状态等场景下。然而,随着技术的发展,Web Storage(localStorage和sessionStorage)以及IndexedDB等现代存储解决方案提供了更大...
##### 2.3 Cookie原理 1. **创建Cookie**:服务器创建并设置Cookie对象的属性。 2. **发送Cookie**:服务器通过HTTP响应头`Set-Cookie`发送Cookie信息给客户端。 3. **客户端存储**:客户端将接收到的Cookie信息...
1. **Cookie原理**:理解cookie的工作机制是学习注入的基础,它是服务器发送到用户浏览器并存储的一小块数据,用于识别用户身份和维持会话状态。 2. **安全风险**:不当的cookie管理可能导致会话劫持、身份冒用等...
在这个资料包中,你可能会找到关于Cookie原理、使用方法以及Java实现Cookie功能的相关教程和示例。 【描述】提到的“我把csdn上的cookie的资料都下来看了一遍,整理好了”,意味着这个压缩包可能包含了多篇博客文章...
1. **Cookie原理**: - Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器保存,当用户再次访问同一网站时,浏览器会将Cookie返回给服务器。Cookie用于存储用户状态信息,如登录状态、购物车内容...
1. **Cookie原理与作用**:Cookie是网站为了辨别用户身份、保持会话状态而存储在用户本地的数据。例如,登录状态、购物车信息、个性化设置等都可以通过Cookie来实现。 2. **管理Cookie的重要性**:管理Cookie可以...
1. **Cookie原理**: - Cookie是Web服务器在用户的浏览器上存储的小型文本文件,用于跟踪和维护用户状态。 - 在SSO场景下,Cookie通常用于存储用户的身份验证信息,如JWT(JSON Web Token)或自定义的认证令牌。 ...
**XSS盗取Cookie原理分析** XSS攻击中,攻击者的目标是将恶意脚本插入到受害者的浏览页面中。这个脚本通常设计为在用户浏览器中读取Cookie并将其发送给攻击者。以下为攻击步骤: 1. 攻击者在目标网站上注入恶意XSS...
1. **Cookie原理**:了解Cookie的工作机制,包括如何设置、读取和管理Cookie,以及它们在会话管理、个性化设置等方面的作用。 2. **SQL注入漏洞**:理解什么是SQL注入,它是如何发生的,以及攻击者可以利用这种漏洞...
介绍下cookie和session之间是咋交互的。原理是啥
本篇学习笔记将深入讲解Cookie的工作原理以及在`urllib`库中的应用。 Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器保存。它的主要用途是识别用户身份、维持会话状态,比如当你登录某个网站后...
采用Cookie原理,对合法用户页面提供一个多重加密Cookie,点播时对Cookie进行验证实现防盗链、下载的功能。由于Cookie本身的特性,需要Web服务和RealSystem服务处于同一个域下才能接收到Cookie信息,所以推荐Web服务...
1. **Cookie的定义与工作原理** - Cookie是由Web服务器发送到用户的浏览器并存储在那里的一小块信息,当用户再次访问同一网站时,浏览器会将这些信息返回给服务器。 - 主要分为Session Cookie和Persistent Cookie...
#### 一、Cookie 原理 在现代Web应用中,单点登录(Single Sign-On,简称SSO)是一种让用户只需进行一次登录就能访问多个应用的技术。为了实现这一功能,Cookie起着至关重要的作用。 **1.1 Cookie与JSESSIONID** ...