zoukankan      html  css  js  c++  java
  • 四种会话跟踪技术的对比

    会话跟踪是一种灵活的机制,虽然HTTP是一种无状态协议,但会话跟踪技术使Web上的状态编程成为可能,目前普遍存在四种会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。

    1 隐藏表单域

    <input type="hidden" id="xxx" value="xxx">
    
    • 特点
      • (参数存放)参数是存放在请求实体里的,因此没有长度限制,但是不支持 GET 请求方法,因为 GET 没有请求实体
      • (Cookie禁用)当Cookie被禁用时依旧能够工作
      • (持久性)不存在持久性,一旦浏览器关闭就结束

    2 URL 重写

    可以在 URL 后面附加参数,和服务器的请求一起发送,这些参数为键/值对

    • 特点
      • (参数存放)参数是存放在 url 里的,有1024长度限制
      • (Cookie禁用)当Cookie被禁用时依旧能够工作
      • (持久性)不存在持久性,一旦浏览器关闭就结束

    Cookie 是浏览器保存的一个小文件,其包含多个键值对

    服务器首先使用 Set-Cookie 响应头传输多个参数给浏览器,浏览器将其保存为 Cookie,后续对同一服务器的请求都使用
    Cookie 请求头将这些参数传输给服务器

    • 特点
      • (参数存放)参数是存放在请求头部里的,也存在长度限制,但这个限制是服务器配置的限制,可以更改
      • (Cookie禁用)可能会禁用Cookie
      • (持久性)浏览器可以保存Cookie一段时间,在此期间Cookie持续有效

    4 Session

    基于前三种会话跟踪技术之一(一般是基于Cookie技术基础,如果浏览器禁用Cookie则可以采用URL重写技术),在每一次请求中只传输唯一一个参数:JSESSIONID,即会话id,服务器根据此会话id开辟一块会话内存空间,以存放其他参数

    • 特点
      • 会话数据全部存放在服务端,减轻了客户端及网络压力,但加剧了服务端压力
      • 既然是基于前三种会话技术之一(Cookie、url重写、隐藏表单域),因此也具备其对应的几个特点
  • 相关阅读:
    Oracle 的日期类型
    简单的同步Socket程序服务端
    MMORPG中的相机跟随算法
    使用了UnityEditor中的API,打包时却不能打包UnityEditor的问题
    C# 中的关键字整理
    Unity3D C#中使用LINQ查询(与 SQL的区别)
    C# 值类型与引用类型的异同
    Unity3D NGUI事件监听的综合管理
    Unity3D 动画状态机简单控制核心代码
    Unity3D判断触摸方向
  • 原文地址:https://www.cnblogs.com/pomer-huang/p/8972058.html
Copyright © 2011-2022 走看看