服务器与浏览器的会话

本文探讨了浏览器与服务器之间的会话管理,重点在于Cookies和Session的使用。Cookies的设置需要注意Path,若未设置有效期则仅在浏览器关闭时失效。不同应用间的Cookies无法共享,而Session在同一应用内可以通过jsp:forward或response.sendRedirect共享。在Weblogic集群环境下,可能需要在weblogic.xml中配置Session参数以实现会话跟踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  

 对于cookies而言:在不同的应用(对于web 或 application之下对应的工程,也就是一个模块), cookies是不能共享的。 因此在使用的时候需要对cookies设置path,来指定具体请求的URL)。
   对于cookie的设置,通常是直接设置域和只能指定相对路径(与本设置cookies所在的目录为标准)。不需要指定端口(不管你访问什么端口)。
   在设置cookie时,如果没有设置有效期,则它的有效期是1,即浏览器关闭时,cookie无效 .但这样的法塔指存在缓存中,不写道cookies文件夹里头
   而对于session而言,不同的应用之间是不能共享session的!就例如:jsp:forward只能取相对路径,因此只能在同一一个应用中共享。在同一个应用中即使是response.redirect也可以共享seesion!
   对于weblogic服务器特别集群的情况可能需要配置weblogic.xml文件有例如下:
   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
   <session-descriptor>
    <session-param>
     <param-name>
     CookieName
     </param-name>
     <param-value>
      username
     </param-value>
    </session-param>
    <session-param>
     <param-name>
     CookieName
     </param-name>
     <param-value>
      pervlige
     </param-value>
    </session-param>
    <session-param>
     <param-name>
    CookiesEnabled
     </param-name>
     <param-value>
      true
     </param-value>
    </session-param>
    <session-param>
     <param-name>
      CookiePath
     </param-name>
     <param-value>
      http://59.64.76.16:7001/DLManagementConsoleWeb
     </param-value>
    </session-param>
    </session-descriptor>


    <jsp-descriptor>
        <jsp-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </jsp-param>
    </jsp-descriptor>

</weblogic-web-app>

注意:在jsp中不能直接调用类的静态方法,他没法对象的调用!他必须先生声明对象,才能调用静态方法!

<think>我们正在讨论微信授权登录流程,特别是微信服务器浏览器建立会话的时机。根据OAuth2.0协议和微信的实现,微信服务器浏览器之间的会话建立发生在用户进行授权操作之前,具体是在用户被重定向到微信登录页面时。步骤分解:1.第三方应用(网站或小程序)引导用户打开一个指向微信授权端点的URL,这个URL包含第三方应用的appid、回调地址redirect_uri等参数。2.用户浏览器访问这个URL,请求到达微信服务器。3.微信服务器此时会检查用户是否已经登录微信(即是否有微信服务器的有效会话)。如果没有,微信服务器会返回一个登录页面,要求用户输入微信账号和密码(或通过其他方式验证身份)。4.用户输入正确的账号密码后,微信服务器会验证用户信息,并在验证通过后建立会话(通常是通过设置Cookie来实现会话保持)。5.建立会话后,微信服务器才会展示授权页面,询问用户是否同意第三方应用获取其基本信息。6.用户同意授权后,微信服务器生成授权码(code),然后通过302重定向将浏览器重定向到第三方应用的回调地址(redirect_uri),并在URL中携带code和state参数。因此,微信服务器浏览器建立会话的时机是在用户登录微信账号的过程中(即步骤4)。这个会话的建立是为了避免用户在同一浏览器中多次重复登录微信,并且确保后续的授权操作是在用户已经认证的情况下进行的。注意:这个会话是微信服务器浏览器之间的会话第三方应用无关。第三方应用在回调地址接收到code后,需要在自己的后端微信服务器进行通信(用code换取access_token),这个通信过程是服务器服务器之间的,不经过浏览器。引用[1]中提到:“当用户选择使用微信授权登录时,他们会被重定向到微信登录页面,在此页面上,用户登录自己的微信账号并确认是否授权给第三方网站或应用访问自己的基本信息。”这证实了在授权之前需要先登录微信,而登录微信的过程就是建立会话的过程。另外,引用[2]中提到了使用Fiddler调试微信网页版,这涉及到微信服务器建立会话后的通信,但这不是我们当前问题的重点。总结:微信服务器浏览器建立会话的时机是在用户被重定向到微信登录页面后,输入微信账号密码并提交,微信服务器验证通过后建立会话(通常通过设置会话Cookie)。相关问题:1.微信授权登录过程中,如何保持用户会话的安全性?2.微信登录页面是如何防止CSRF攻击的?3.微信登录会话的过期时间是如何设置的?4.在微信授权流程中,如果用户已经登录了微信,流程会如何简化?</think>### 微信登录流程中会话建立的时机分析 在微信授权登录流程中,**微信服务器浏览器建立会话的关键时机**发生在用户被重定向到微信登录页面时,具体分为两个阶段: #### 1. **初始会话建立阶段(用户访问微信登录页时)** ```mermaid sequenceDiagram participant 浏览器 participant 微信服务器 浏览器->>微信服务器: GET /connect/oauth2/authorize?appid=XX&redirect_uri=XX 微信服务器->>浏览器: 1. 返回登录页面HTML 2. 设置会话Cookie(如:wxsessionid) 3. 建立临时会话状态 ``` - **触发条件**:浏览器首次访问微信授权端点 `https://open.weixin.qq.com/connect/oauth2/authorize` - **关键动作**: - 微信服务器返回登录页面(含微信账号密码表单) - 通过`Set-Cookie`头部设置会话标识(如`wxsessionid`) - 在服务器端创建临时会话存储(存储设备信息、IP等上下文) - **会话有效期**:通常为**5-10分钟**(未登录状态下)[^1] #### 2. **会话认证阶段(用户提交微信凭证时)** ```mermaid sequenceDiagram participant 用户 participant 浏览器 participant 微信服务器 用户->>浏览器: 输入微信账号/密码 浏览器->>微信服务器: POST /login + 会话Cookie 微信服务器->>微信服务器: 1. 验证凭证有效性 2. 绑定用户身份到会话 3. 升级为认证会话 微信服务器->>浏览器: 显示授权确认页面 ``` - **触发条件**:用户提交微信账号密码表单 - **关键动作**: - 浏览器携带会话Cookie发送凭证 - 微信服务器验证凭证并绑定用户OpenID到会话 - 会话状态从未认证(`unauthenticated`)升级为已认证(`authenticated`) - **安全机制**: - 会话Cookie标记为`HttpOnly`和`Secure` - 敏感操作需二次验证(如扫码登录) > ⚠️ **重要说明**:此会话仅存在于**微信域名(open.weixin.qq.com)** 下,第三方网站的会话完全隔离。用户授权后,微信服务器通过302重定向将授权码(`code`)返回给第三方网站,但**不会传递会话信息**给第三方[^1]。 --- ### 会话生命周期示意图 ``` 用户访问微信登录页 │ ▼ 建立临时会话(未认证状态) │ ▼ 用户提交微信凭证 │ ▼ 绑定用户身份 → 升级为认证会话 → [5分钟内有效] │ ▼ 用户授权第三方应用 │ ▼ 302重定向回第三方网站 │ ▼ 会话销毁(或超时自动回收) ``` --- ### 相关问题 1. 微信登录会话中存储了哪些用户信息? 2. 如何防止微信登录会话被劫持? 3. 微信网页版(wx.qq.com)的会话机制开放平台有何不同? 4. 会话超时后对授权流程有什么影响? 5. 微信如何实现跨设备会话同步(如手机确认登录)? [^1]: 微信授权登录流程的核心机制分析 [^2]: 微信网页版会话调试技术参考
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值