session机制、cookie机制
一、Cookie机制
在web程序中是使用HTTP协议来传输数据的,因为http是无状态协议,一旦数据交换完毕,客户端和服务器端的连接就会关闭,再次交换数据需要建立新的连接,所以无法实现会话跟踪,cookie技术则弥补了这一缺陷。
cookie实际上一段的文本信息,客户端请求服务器。如果服务器需要记录该用户的状态,就使用response向客户端浏览器颁发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户的状态。服务器还可以根据需要修改cookie的内容。
cookie生命周期:
cookie的maxAge决定cookie的生命周期,单位为秒(second)。cookie通过getMaxAge()方法和setMaxAge()方法来获得maxAge属性,如果maxAhe属性为正,则表示cookie会在maxAge秒之后自动失效。如果maxAge属性为负,则说明cookie仅在本浏览器窗口和本窗口打开的子窗口下有效,关闭窗口cookie则失效。maxAge的默认值是-1当maxAge的值为0时,表示删除cookie。
Cookie cookie = new Cookie("username","ainimomoda");
cookie.setMaxAge(Integer.Max_Value);//设置生命周期为Max_Value
response.addCookie(cookie);//输出到客户端
二、Session机制
session也是一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器是时候把客户端信息以某种形式记录在服务器上,这就是session中查找该客户的状态。
session生命周期:
session保存在服务器端,为了获得更高的存取速度,服务器一般把session放在内存。每个用户都会有一个独立的session,如果session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。
session在用户第一次访问服务器的时候自动创建,需要注意只有访问JSP,Servlet等程序时才会创建session;只要访问HTML、IMAGE等静态资源不会创建session。如果尚未生成session,可以使用request.getSession(true)强制生成session。
session生成后,只要用户访问,服务器就会更新session的最后访问时间,并维护该session。用户每访问服务器一次,无论是否续写session服务器都认为该用户的session活跃(active)了一次。
Session对应的类是javax.servlet.http.HttpSession,每一个访问者都对应一个session对象,并将其状态信息保存在这个session对象中,session对象的创建是在用户第一次访问服务器时产生的。
HttpSession session = request.getSession();//获取session对象
session.setAttribute("username",zhangsan);//设置session属性
out.println(session.getAttribute());//获取session属性
三、cookie和session的区别:
1. cookie数据放在客户端浏览器,session放在服务器;
2. cookie没有session安全;
3. session会在一定时间保存在服务器上,所以会占用服务器内存;
session机制、cookie机制的更多相关文章
- HTTP Session、Cookie机制详解
一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...
- 深入理解Session和Cookie机制
具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持.cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力. 而 ...
- Session 和cookie机制详解
参考: http://blog.csdn.net/fangaoxin/article/details/6952954/ http://blog.csdn.net/hjc1984117/article/ ...
- JWT的初步了解以及session、cookie机制
1.什么是状态保持? 想要了解JWT,首先需要知道什么是状态保持,举一个例子来说:无论是在web上还是在手机app上,我们都可以以游客的身份访问,此时都会有登录/注册字眼,当我们登录之后,就会是我们的 ...
- session和cookie
第一次听到cookie这个词的时候着实兴奋了一段时间,以为是小饼干呢~快喝一杯82年的java压压惊!哈哈~ 与cookie的第一次邂逅——清缓存和清cookie 刚毕业的时候上班,做二次开发,明明后 ...
- ASP.NET MVC5总结(三)登陆中常用技术解析之session与cookie
1.session机制 session机制是在服务器端保持状态的方案,在做系统登陆时,我们往往会用到session来存储一些用户登录的重要信息,而这些信息是不能存在cookie中的. 当访问量增多时, ...
- session和cookie详解2
http 之session和cookie http://www.cnblogs.com/ForEverKissing/archive/2008/05/23/1205503.html Session简介 ...
- 再续session和cookie (网络整理)
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...
- session和cookie详解
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一 技术.本文将详细讨论session的工作机制并且对在Java ...
- (转)http 之session和cookie
http://www.cnblogs.com/xuxm2007/archive/2011/12/05/2276705.html Session简介 摘 要:虽然session机制在web应用程序中被采 ...
随机推荐
- 给枚举定义DescriptionAttribute
在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举 public enum Season { Spring = 1, Summer = 2, Autumn = 3, Winter ...
- js摄像头
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- TPFanControl.ini
TPFanControl.ini 64位系统安装目录分为两种 64位用:C:\Program Files 32位用:C:\Program Files (x86) 64位系统系统目录分为两种 64位用: ...
- IOS 跳转页面
1. 跳转界面,关闭自身 LoginViewController *loginViewController = [[LoginViewController alloc]initWithNibName: ...
- scala的泛型浅析
1. scala泛型浅析 package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界 ...
- c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化
1 下面是我写的一个序列化的类 public static class ObjSerialize { /// <summary> /// 将对象数组obj序列化,内存中的缓冲区的数据序列化 ...
- SSISDB8:查看SSISDB记录Package执行的消息
在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录opera ...
- 如何准备Java的高级技术面试
一. 换位思考下,如果你面试官,你会怎么做 只能通过简历和面试来衡量,别无他法.如果某位大牛确认能力很行,但面试时无法充分地自证能力,那对不起了,过不了,现实就这样. 如果面试官由于能力不行,招进来一 ...
- 【Git】一、安装、配置和仓库创建
之前一直使用图形界面的git,只会一些最常用的操作,并没有说深入学习git的全部功能 开发这么久了,觉得是时候学习一下指令操作,更快捷也更bigger ------------------------ ...
- 翻译应用将在Win8.1系统中取消下载安装
自Windows8.Windows Phone 7.1和Windows Phone 8受到影响之后,微软又正式宣布停止对翻译应用提供支持服务.Microsoft Translator这款应用将从Win ...