SessionID的传送

简介:
Http是一个无状太的协议。为了保存浏览器请求状态,服务端通常用Session来实现。Session为了保存状态,生成一个SessionId在
服务端与浏览端传输,以这个唯一的SessionId来识别浏览端在服务端器的身份(在ASP.NET中,SessionId可以通过Cookie和URL两种
与浏览端)。
ASP.NET中是怎么样来实现的呢?
首先,分两种情况来没有Global.asax和有Global.asax。
Session按Cookie封送
先说没有Global.asax:
在代码中,如果Session没有子项,也就是Session.Count等于0,浏览器端都没有ASP.NET_SessionId为键的Cookie,一旦Session有
子项,浏览端就会有这个Cookie。
如果在代码中用到Session.SessionID,Request.Cookies和Response.Cookies集合中就会多一个以ASP.NET_SessionId为键的项,值为
当前Session.SessionID。如果代码中没有用到Session.SessionID,Request.Cookies["ASP.NET_SessionId"]会为空,
Response.Cookies["ASP.NET_SessionId"]则不然,它会自动生成这个项,但值为空。这个空值也会发送到浏览器端的。所以不要这
样使用。

有Global.asax:
如果有这个文件,浏览端都会生成ASP.NET_SessionId为键的Cookie。因为在Session_Start等方法,与Session的事件关联起来了。
有Global.asax后,同一个浏览器端生成SessionID每次相同。
Session按URL封关
URL封送会在上面的任何状态下存在的。























本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/240025  ,如需转载请自行联系原作者






相关文章
|
10天前
|
前端开发
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
|
存储 JSON NoSQL
谁说Session只能存储在服务器端?
今天使用Koa遇到了一个诡异的问题,然后仔细研究了Koa-Session的实现原理,刷新了我的认知。好我们从头讲起。 先看看Session的原理是什么?
396 0
|
25天前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
3月前
|
存储 前端开发 Java
会话技术, 掌握Cookie的使用 掌握Session的使用
会话技术, 掌握Cookie的使用 掌握Session的使用
36 0
|
3月前
客户端禁用cookie后的会话数据保存问题
客户端禁用cookie后的会话数据保存问题
|
8月前
|
存储 编解码 Java
会话技术(Cookie与Session及对比)
一、基本概念 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开(浏览器或客户端关闭)为止
|
11月前
|
存储 前端开发 安全
会话技术, 掌握Cookie的使用 掌握Session的使用(下)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
11月前
|
存储 Web App开发 编解码
会话技术, 掌握Cookie的使用 掌握Session的使用(上)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
11月前
|
存储 Web App开发 安全
会话技术, 掌握Cookie的使用 掌握Session的使用(中)
会话技术, 掌握Cookie的使用 掌握Session的使用
|
11月前
|
存储 Java 应用服务中间件
客户端会话跟踪技术 Cookie 浅谈
客户端会话跟踪技术 Cookie 浅谈
90 0