由于http协议是无状态的协议,为了能够记住请求的状态,于是引入了Session和Cookie的机制;会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份

知识点

  • cookie数据保存在客户端,session数据保存在服务器端
  • session中保存的是对象,cookie中保存的是字符串
  • Cookie具有不可跨域名性
  • session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的
  • 实现两个域名下的Session同步必须将同一个SessionID作为Cookie写到两个域名下; 当服务端往session中保存一些数据时,Response中自动添加了一个Cookie:JSESSIONID:xxxx,再后续的请求中,浏览器也是自动的带上了这个Cookie,服务端根据Cookie中的JSESSIONID取到了对应的session。客户端服务端是通过JSESSIONID进行交互的,并且添加和携带key为JSESSIONID的Cookie都是tomcat和浏览器自动帮助我们完成的

表单重复提交验证

  1. JavaScript防止表单重复提交
  2. 将提交按钮设置为不可用
  3. 利用Session防止表单重复提交:用户请求时生成唯一token,同时将token存储到Session中,当用户提交表单时带上token和服务端Session中的token进行比较,如果一致则提交成功并清除token;否则提交失败;恶意用户可利用这一性质,不断重复访问页面,以致Session中保存的标识号不断增多,最终严重消耗服务器内存。可以采用在Session中记录用户发帖的时间,然后通过一个时间间隔来限制用户连续发帖的数量来解决这一问题

results matching ""

    No results matching ""