当前位置: 首页 > news >正文

医院网站前置审核遵义你想网

医院网站前置审核,遵义你想网,网站开发app小程序,新浪舆情通转载自 禁用Cookie后#xff0c;Session怎么样使用 在上篇中更多的是在分析通过Session Cookie这一方式#xff0c;在每次请求时都将 sessionId以Cookie的形式发到服务端#xff0c;来保持一致。这也是许多人印象中的 Session在浏览器关闭之后就失效这一说法的来源。 其…转载自  禁用Cookie后Session怎么样使用 在上篇中更多的是在分析通过Session Cookie这一方式在每次请求时都将 sessionId以Cookie的形式发到服务端来保持一致。这也是许多人印象中的 Session在浏览器关闭之后就失效这一说法的来源。 其实本质上是浏览器在关闭之后应用对应的SessionCookie被清除了再次打开浏览器请求应用时之前的SessionId对应的Cookie不存在所以就会重新创建一个Session。而服务端原来的Session其实还是存在的只是没人与之对应就默默的等着超时时间一到被清除了。 而对于Cookie我们都知道其是浏览器保存客户端本地的安全问题暂且不说但Cookie是可以在浏览器中配置后关闭的。关闭之后服务器就不能再向浏览器写Cookie的此时我们基于SessionCookie的实现方式就遇到了问题。 虽然每一次仍然通过response将Set-Cookie添加到header里但发到浏览器的时候不能再写Cookie后续的请求依然是重新发一个sessionId为null的请求导致每次仍是重新创建session对象并没有解决交互状态的问题。 为了解决这个问题服务器提供了另外一种方式 URL重写即英文的URLrewrite。 这一方式其本质上是在每次请求的url后面append 上一个类似于jsessionidxxxx这样的参数在服务端解析时获取到jsessionid对应的值并根据其获取到对应的Session对象从而保证了交互状态一致。 一句话就说明白了。 但这一句话背后有一些事情还是需要注意的 例如我们可以自己在url后面写上jsessionid当前session的id值。这种类似于硬编码因为服务端获取这个session的id是通过jsessionid这个参数名来获取的而这个参数我们在前一篇文章中了解到是可以配置的当改了之后后面的sessionId就获取不到了。 其次为了保证各类url规则的一致服务端提供了response API来处理只需要直接使用就可以完成jsessionid的参数追加。 我们看代码中的实现逻辑 /*** Return codetrue/code if the specified URL should be encoded with* a session identifier. This will be true if all of the following* conditions are met:* ul* liThe request we are responding to asked for a valid session* liThe requested session ID was not received via a cookie* liThe specified URL points back to somewhere within the web* application that is responding to this request* /ul** param location Absolute URL to be validated*/ protected boolean isEncodeable(final String location) {if (location null) {return (false);}// Is this an intra-document reference?if (location.startsWith(#)) {return (false);}// Are we in a valid session that is not using cookies?final Request hreq request;final Session session hreq.getSessionInternal(false);if (session null) {return (false);}if (hreq.isRequestedSessionIdFromCookie()) {return (false);}// Is URL encoding permittedif (!hreq.getServletContext().getEffectiveSessionTrackingModes().contains(SessionTrackingMode.URL)) {return false;}return doIsEncodeable(hreq, session, location);} 代码中会根据是否使用SessionCookie来决定是否要继续 之后会继承判断可使用的Session tracking Mode里都有哪些是否包含URL。 在doIsEncodeable方法中最终实现是这一行代码 String tok ; SessionConfig.getSessionUriParamName(request.getContext()) session.getIdInternal();也就是我们上面提到的硬编码jsessionid到url后面不太好的原因这里就是在读取它的配置。 public static String getSessionUriParamName(Context context) {String result getConfiguredSessionCookieName(context);if (result null) {result DEFAULT_SESSION_PARAMETER_NAME;}return result;} 另外我们上面提到的Session tracking Mode是在Tomcat启动的时候判断的而服务端并不可能得知以后要连接的浏览器中哪些是不允许Cookie的所以对于Sesion tracking mode,URL无论如何都是可以使用的而Session cookie是否要使用是通过在Context组件中配置的其cookies属性为false时禁止的 private void populateSessionTrackingModes() { // URL re-writing is always enabled by default defaultSessionTrackingModes EnumSet.of(SessionTrackingMode.URL); supportedSessionTrackingModes EnumSet.of(SessionTrackingMode.URL); if (context.getCookies()) { //此处读取Context组件的cookies配置如果为false则不使用SessionCookie defaultSessionTrackingModes.add(SessionTrackingMode.COOKIE); supportedSessionTrackingModes.add(SessionTrackingMode.COOKIE); } 总结下即为了防止客户端禁用Cookie导致的Session状态不一致的情况我们可以采用UrlRewrite的方式来保证。 这一过程我们可以使用response的encodeURL方法来使sessionid添加到url后面不过是需要先在Context组件中声明不使用cookies。
http://www.sadfv.cn/news/262761/

相关文章:

  • 西昌有哪些做网站的公司wordpress 友好速搭
  • 做网站推广需要什么专业图片优化软件
  • 怎么把qq空间做成企业网站建立免费空间网站
  • 商会网站建设招标方案百度app怎么打开
  • flash网站建设教程合肥哪里有建站公司
  • 指纹定制网站自己做的网站怎么取sql数据
  • 深圳市建设局官方网站软文广告营销
  • 有哪些做策划的用的网站国家高新技术企业认定
  • 学校二级网站建设将wordpress安装到哪个数据库
  • 网站代码审计网店代运营是做什么的
  • 四川建设厅下载专区网站网站建设学什么专业
  • 网站让图片充满屏幕怎么做清远seo站内优化
  • 个人网站免费制作链接转二维码
  • 广州海珠区赤岗 新港网站建设公司如何规划一个网站
  • 学校网站构建新人写手适合哪个平台
  • 免费商城网站模板下载漳州微网站建设公司推荐
  • 娄底建设网站公司丽水山耕品牌建设网站
  • 营销型网站应必备的七大功能职业培训机构资质
  • 什么网站能让小孩做算术题制作静态网站模板
  • 网站宣传的好处廊坊网站制作系统
  • 网站要怎样做才能获得市场份额山东再发紧急通知
  • 做网站 空间企业网站建设需要许可证吗
  • 关于网站建设相关文章手机在线网站
  • 外卖网站设计快速微信网站设计
  • linux网站做301重定向外国域名注册很多网站
  • 韩国优秀网站设计欣赏人工智能培训心得体会
  • 使用公网ip做网站地址建立站点的作用
  • 网站建设维护需要懂哪些知识wordpress手机加载不出来
  • 网站成本案例电子商务营销策略论文
  • 万站网仿win8 网站