zoukankan      html  css  js  c++  java
  • Cache、Cookie、Session、Token 区分

    协议是什么

    在接口测试中,客户端发送的request至服务端反馈的response中传输的数据就是接口测试最重要的部分

    Cache是什么

    打开浏览器或者应用的时候,用户的等待时间叫做响应时间,打开速度影响到用户体验,提高反应速度的一个方法就是使用缓存策略,缓存策略能带来什么好处呢?

    1.减少延迟:因为网页请求指向的是更接近的客户端缓存,而不是资源服务器,所以花费的时间更短,提高用户体验

    2.降低网络负荷:因为缓存可以重复使用,节省带宽,降低网络负荷,也就可以更加节省用户的流量

    缓存一般分为以下几种:

    1.浏览器缓存    

    (缓存在本地)

    2.代理缓存     

    (缓存在网络路由,也就是共享缓存)

    3.网关缓存      

    (缓存在CDN)

    缓存策略一般分两种情况:

    1.强缓存    

    (直接在本地缓存中读取资源)

    2.协商缓存    

    (通过服务器告知是否能用本地缓存,先和服务器协商,如果可以,就从本地缓存中读取。如果不可以,就返回最新的资源)

    Cookie

    Cookie的内容是保存一小段文本信息。组成一个通行证,用来处理客户端无状态协议的一种解决方案

    Cookie使用原理如下:

    1.用户会提供信息提交给服务器

    2.服务端向客户端回传相应数据的同时,也会发回Cookie

    3.客户端接收到服务器相应后,浏览器将Cookie保存在同一个位置

    4.客户端向服务端发送请求的实话,会把Cookie再次发回服务端

    获取Cookie的途径

    1.浏览器自带的开发工具或者抓包工具(Fiddler,Charles)

    2.本地获取(ie的路径为C盘appdata/Microsoft/Windows/Cookies,Firefox位于C盘appdata/Mozilla/Firefox/Profiles,Charome位于C盘appdata/Goole/Chrome/User Date /Default)

    3.js代码查看(浏览器地址栏输入Javascript:alert(document.cookie))

    Session是什么

    Session是另外一种记录用户状态的机制,不同于Cookie的是Session是保存在服务器上,用来解决服务端对无状态协议

    Session的传输步骤

    1.服务端创建Session,并创建唯一的id

    2.服务器将id发给客户端

    3.客户端再次发送请求的实话带上Session的id

    4.服务器接收到请求后根据Seesion的id找到相应的Session,完成相应

    Session的传输媒介

    1.通过Cookie传输

    2.通过URL地址重写

    很多同学不知道Session和Cookie的区别,那么我来大概讲解一下我理解的

    1.存储位置不同:大多数情况Cookie存储在浏览器,Session存储在服务器

    2.存储容量不同:单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西影响性能

    3.存取方式不同:Cookie只能用ASCII字符串。通过编码方式获取Unicode字符或者二进制数据。不好存储复杂的信息,Session能存储任何类型的数据

    4.隐私策略不同:Cookie放在客户端,可以进行Cookie欺骗,所以不安全。Session放在服务端,更加安全

    5.有效期不同:Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,,就算不依赖Cookie,

    用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出

    6.服务器压力不同:Cookie保存子本地。不存在服务端压力。Session保存在服务端,每个用户产生一个Session,并发过多非常占用内存

    7.浏览器支持不同:如果浏览器禁用Cookie,那么Cookie直接失效。Session比较好点。可以用URL重写

    8.跨域不同:Cookie支持跨域访问,Session不支持跨域

    Token是什么:

    1.当客户端第一次请求的实话,发送用户信息到服务端,服务器对用户信息使用HSA256算法以及密钥进行签名,再将这个签名和数据一次作为Token返回给客户端

    2.服务端不保存Token,客户端保存Token

    3.客户端再次请求的实话,将Token发送给服务端

    4.服务端同样用HSA256算法和同样的密钥对数据再一次计算签名,和Token中的签名做比较(如果相同,直接登录,不相同,登录失败)

  • 相关阅读:
    DELPHI 表格控件 DBGridEh 属性设置详解
    Delphi保存网页中的图片
    Delphi 文件转换Base64
    CEF 各个版本适应的平台参考表
    让dcef3支持mp3和h.264 mp4解码播放
    Cef 重写alert与confirm弹窗
    dcef3 基本使用经验总结
    CEF3 命令行 CefCommandLine 所有选项 与 开发中使用的测试网址
    php连接sql server(win10+phpstudy+navicat+php+sql server)
    C语言随机数
  • 原文地址:https://www.cnblogs.com/seamy/p/15648789.html
Copyright © 2011-2022 走看看