session详解,session具体是什么

http://www.itjxue.com  2023-01-07 12:45  来源:未知  点击次数: 

Cookie/Session详解

cookie与session应用于互联网中的一项基本技术——会话(用户与客户端的交互)跟踪技术,用来跟踪用户的整个会话。简单来说,cookie是通过在客户端记录信息确定用户身份的,而session则通过在服务器端记录信息确定用户身份。

cookie 定义

cookie是服务器传给客户端的体积很小的纯文本文件。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。

cookie机制

cookie的生成(java代码举例):

cookie会附在请求资源的HTTP请求头上发送给服务器,服务器通过相应方法获得该cookie。

cookie属性

cookie的主要属性包括:名字,值,过期时间,路径和域:

应用场景

session 定义

session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。session相当于程序在服务器上建立的一份用户的档案,用户来访的时候只需要查询用户档案表就可以了。

session的生命周期与有效期

为了获得更高的存取速度,服务器一般把session放在内存里。每个用户都会有一个独立的session。如果session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。session的使用虽然比cookie方便,但是过多的session存储在服务器内存中,会对服务器造成压力。因此,session里的信息应该尽量精简。

session在用户第一次访问服务器的时候自动创建。session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该session。

由于有越来越多的用户访问服务器,因此session也会越来越多。为防止内存溢出,服务器会把长时间内没有活跃的session从内存中删除。这个时间就是session的超时时间。如果超过了超时时间没访问过服务器,session就自动失效了。

session与cookie

虽然session保存在服务器,但是它的正常运行仍然需要客户端浏览器的支持。这是因为session需要使用cookie作为识别标志。HTTP协议是无状态的,session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为SESSIONID的cookie,它的值为该Session的id。Session依据该cookie来识别是否为同一用户。

对于不支持cookie的手机浏览器,有另一种解决方案:URL地址重写。URL地址重写的原理是将该用户session的id信息重写到URL地址中,服务器能够解析重写后的URL获取session的id。这样即使客户端不支持cookie,也可以使用session来记录用户状态。

session的常用方法:

setAttribute(String attribute, Object value)

设置Session属性。value参数可以为任何Java Object。通常为Java Bean。value信息不宜过大

String getAttribute(String attribute)

返回Session属性

Enumeration getAttributeNames()

返回Session中存在的属性名

void removeAttribute(String attribute)

移除Session属性

String getId()

返回Session的ID。该ID由服务器自动创建,不会重复

long getCreationTime()

返回Session的创建日期。返回类型为long,常被转化为Date类型,例如:Date createTime = new Date(session.get CreationTime())

long getLastAccessedTime()

返回Session的最后活跃时间。返回类型为long

int getMaxInactiveInterval()

返回Session的超时时间。单位为秒。超过该时间没有访问,服务器认为该Session失效

void setMaxInactiveInterval(int second)

设置Session的超时时间。单位为秒

boolean isNew()

返回该Session是否是新创建的

void invalidate()

使该Session失效

具体说cookie机制采用客户端保持状态案用户端状态存贮机制需要用户打客户端cookie支持cookie作用解决HTTP协议状态缺陷所作努力.

session机制采用种客户端与服务器间保持状态解决案同我看由于采用服务器端保持状态案客户端需要保存标识所session机制能需要借助于cookie机制达保存标识目session提供便管理全局变量式

session针每用户变量值保存服务器用sessionID区哪用户session变量,值通用户浏览器访问候返给服务器客户禁用cookie值能设置由get返给服务器

安全性说:访问使用session 站点同自机建立cookie建议服务器端SESSION机制更安全些.任意读取客户存储信息

统cookie发通扩展HTTP协议实现服务器通HTTP响应加行特殊指示提示浏览器按照指示相应cookie

网络服务器观点看所HTTP请求都独立于先前请求说每HTTP响应完全依赖于相应请求包含信息

状态管理机制克服HTTP些限制并允许网络客户端及服务器端维护请求间关系种关系维持期间叫做(session)

Cookies服务器本机器存储段文本并随每请求发送至同服务器

session机制种服务器端机制服务器使用种类似于散列表结构(能使用散列表)保存信息

WebSocketSession接口详解

org.springframework.web.socket

NativeWebSocketSession,SocketJsSession

AbstractHttpSocketJsSession,AbstractSockJsSession,AbstractWebSocketSession,JettyWebSocketSession,PollingSockJsSession,StandardWebSocketSession,StreamingSockJsSession,WebSocketServerJsSession

session详解

jsp内置对象,保存一个会话期中的信息,比如你上网站买东西,登陆后有购物车,怎样确保你买的东西都进了你的购物车呢 ,这里用到了session

(责任编辑:IT教学网)

更多

推荐图片影音文章