web服务器没有短期记忆,所以需要使用session来跟踪用户的整个会话活动。会话管理有3种解决方案:

  1)使用隐藏域(很少使用)

  在显示页面中使用隐藏域来保存会话ID。例如,在JSP中将input标签的type属性设定为hidden,再将绘画的唯一标识记录到隐藏域的value属性中,并设置name属性。当表单提交时,会话标识也被提交到服务端,服务端根据它找到对应的会话对象。此方法实现起来比较繁琐,需要在每个页面中都包含会话标识表单,所以使用较少。

  2)使用Cookie

  服务器生成会话ID、创建cookie对象、把会话ID放到cookie中、把cookie设置为响应的一部分(这些均由容器负责)。客户端收到响应后,将会话ID保存在cookie中,在下一次请求时从cookie中取得慧华表示并发送给服务器端,服务器端收到请求后,根据发送过来的会话标识查找到对应的会话对象,这样服务器端就清除当前是哪个客户端在连接,并且可以从会话中获得信息。利用cookie实现会话管理是目前开发中采用的主流方法。

  3)使用URL重写

  如果浏览器不支持cookie,可以使用URL重写实现会话。就是在URL地址的末尾添加会话标识,改写了原来的URL地址。服务端接收到请求时,解析出会话标识,然后利用会话标识查找出与当前请求相对应的会话对象。

  利用URL重写的方法,整个web应用中的超链接或者脚本中用到的URL都需要添加会话标识,web应用中的每一个页面都需要动态生成,页面的每一个连接或者由客户端生成的跳转指令都必须加上会话标识,这样才能确保是当前会话。当客户访问静态页面时,会话标识将会丢失,当重回动态页面时将不能继续此前的会话,这是它的缺陷之一。

  其次,当用户在浏览网页时,可能会复制URL分享给朋友,因为URL中包含了会话标识,那么其他人可能与当前浏览者使用同一会话对象,这样可能会暴露隐私信息。

Session初识的更多相关文章

  1. Django框架 之 Cookie和Session初识

    Django框架 之 Cookie和Session初识 浏览目录 Cookie介绍 Django中的Cookie Session 一.Cookie介绍 1.Cookie产生的意义 众所周知,HTTP协 ...

  2. AJAX异步、sweetalert、Cookie和Session初识

    一.AJAX的异步示例 1. urls.py from django.conf.urls import url from apptest import views urlpatterns = [ ur ...

  3. web框架--tornado之cookie与session初识

    cookie的本质其实就是在浏览器端保存的键值对, 每当浏览器端发送一次请求, 都会将这些键值对附加在请求中并发送给服务器端. 一.目录结构 二.main_pro.py #!/usr/bin/env ...

  4. python 全栈开发,Day119(Flask初识,Render Redirect HttpResponse,request,模板语言 Jinja2,用户登录例子,内置Session)

    一.Flask初识 首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 三大主流Web框架对比 ...

  5. 初识 Asp.Net内置对象之Session对象

    Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...

  6. 初识Flask框架,以及Flask中的模板语言jinjia2和Flask内置的Session

    一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Fl ...

  7. [MySQL 5.6] 初识5.6的optimizer trace

      在MySQL5.6中,支持将执行的SQL的查询计划树记录下来,目前来看,即使对于非常简单的查询,也会打印出冗长的查询计划,看起来似乎不是很可读,不过对于一个经验丰富,对查询计划的生成过程比较了解的 ...

  8. 初识Identity

    初识Identity 摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验 ...

  9. php session序列化攻击面浅析

    目录 0x00 首先,session_start()是什么? 0x01 初识php-session序列化机制 0x02 php_serialize引擎(反)序列化测试 0x03 当使用不同的引擎来处理 ...

随机推荐

  1. Object Pascal 语法之异常处理

    http://www.cnblogs.com/spider518/archive/2010/12/30/1921298.html 3 结构化异常处理 结构化异常处理(SHE)是一种处理错误的手段,使得 ...

  2. composer 安装yii插件 fontawesome

    国外站点 http://fontawesome.io/ 国内站点 http://fontawesome.dashgame.com/ Installation The preferred way to ...

  3. SqlServer扩展存储过程

    1. 扩展存储过程xp_cmdshell用法: --1.启用 SP_CONFIGURE RECONFIGURE GO SP_CONFIGURE RECONFIGURE GO --2.用法 master ...

  4. tif图片编辑利器

    http://www.onlinedown.net/soft/99112.htmTIF编辑器 0.4 http://www.zjda07.cn/软件类别:国产软件/图像处理软件大小:1089KB软件授 ...

  5. webdriver hangs when get or click

    Same times the webdriver hangs when get url or click some link,  webdriver executing (get or click) ...

  6. React Native For Android 架构初探

    版权声明:本文由王少鸣原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/171 来源:腾云阁 https://www.qclo ...

  7. 【转】 C++的深拷贝与浅拷贝

    对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子.   ...

  8. js解码

    如代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  9. jq layer插件使用

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. jmeter 建立一个监控测试计划

    监控 压力测试和系统管理是有用的. 使用压力 测试,服务器性能监控提供了额外的信息. 这也使得它更容易看到服务器性能之间的关系 在客户端和响应时间. 作为一个系统管理工具, 监控提供了一种简单的方法来 ...