zoukankan      html  css  js  c++  java
  • 计算机原理HTTP:Cookie和Session

    • 为什么需要Cookie和Session?

      • WEB应用程序是使用HTTP协议传输数据的。
      • HTTP协议是无状态的协议,一旦数据提交完毕,客户端与服务端的连接就会关闭,再次交换数据需要建立新的连接。
      • 这就意味着服务器无法从连接上跟踪会话。
      • 要实现跟踪会话必须引入一种机制。
    • Cookie

      • Cookie是浏览器存储数据以此来追踪用户和识别用户的机制,从实现来说,cookie是存储在客户端上的一个数据片段。
      • Cookie运行原理
        • 客户端向服务端发起一个HTTP请求
        • 如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie(通行证)。客户端会把cookie保存起来。
        • 当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一起提交给服务器。
        • 服务器检查该cookie,以此来辨识用户状态。服务器还可以根据需要修改cookie的内容。
          image
      • Cookie安全性问题
        • 不安全的原因:因为它存储在浏览器端(用户本地),一些别有用心的人能够通过浏览器截获cookie。
        • 不安全的表现形式:
          • cookie欺骗:cookie加密,一些别有用心的人并不需要直到cookie的具体含义,只需将这个cookie向服务器提交,使得身份验证通过。
          • cookie截获:cookie以纯文本的形式在浏览器和服务器之间传递,在web通信时极容易被非法用户截获和利用。非法截获cookie后,在cookie的有效时间内重新发送给服务器,就可以获得用户权限。
      • 如何解决cookie安全性问题
        • 设置cookie有效期不要太长
        • 加密cookie
        • session和cookie同时使用,相对的session更安全,可以将相对重要的信息存入session。
        • 使用https
    • Session

      • Session是服务器端使用的一种记录客户端状态的机制,使用上比cookie简单一些,相应的也增加了服务器的存储压力。
      • Session运行原理
        • 客户端向服务端发起一个HTTP请求
        • 服务端根据设置的session创建指令,在服务端创建一个编号为sessionid的文件。
        • 服务端将sessionid编号响应给客户端,客户将该编号存在cookie中。
        • 当下一次请求时,客户端将这个sessionid携带在请求中,发送给服务端,服务端根据这个sessionid来做一些业务判断。
          image
    • cookie和session的比较

      cookie session
      存储在客户端 存储在服务端
      不是很安全 相对更安全
      存储容量为4K 存储容量不限
      只能存储string对象 可以存储任意对象
      默认销毁时间是整个会话(浏览器关闭) 默认销毁时间是30分钟
      • 相同点:都是为了记录当前用户的信息
  • 相关阅读:
    mysql总结
    JVM入门_笔记_狂神说
    spring-与事务管理相关的工具类
    spring-获取连接的工具类
    浏览器调试之 实时更新 browser-sync
    Git: 版本控件
    Visual Studio Code 自定义快捷键,自动生成.vue文件
    Markdown基本语法
    Node.js 平台-服务器 之 Express
    chrome插件之 vue devtools
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12301452.html
Copyright © 2011-2022 走看看