zoukankan      html  css  js  c++  java
  • Jmeter之HTTP cookie管理器

    cookie是什么

    由于http是无状态的协议,一旦客户端和服务器的数据交换完毕,就会断开连接,再次请求,会重新连接,这就说明服务器单从网络连接上是没有办法知道用户身份的。怎么办呢?那就给每次新的用户请求时,给它颁发一个身份证(独一无二)吧,下次访问,必须带上身份证,这样服务器就会知道是谁来访问了,针对不同用户,做出不同的响应。,这就是Cookie的原理。

    其实cookie是一个很小的文本文件,是浏览器储存在用户的机器上的。Cookie是纯文本,没有可执行代码。储存一些服务器需要的信息,每次请求站点,会发送相应的cookie,这些cookie可以用来辨别用户身份信息等作用。

    如图所示,用户首次访问服务器,服务器会返回一个独一无二的识别码;id=23451,这样服务器可以用这个码跟踪记录用户的信息,(购物历史,地址信息等)。

    cookie可以包含任意的信息,不仅仅是id,客户端会记录服务器返回来的Set-Cookie首部中的cookie内容。并将cookie存储在浏览器的cookie数据库中,当用户访问同一站点时,浏览器就会挑选当时该站点颁发的id=XXX的身份证(cookie),并在Cookie请求首部发送过去。

    cookie的类型

    可以按照过期时间分为两类:会话cookie和持久cookie。

    会话cookie是一种临时cookie,用户退出浏览器,会话Cookie就会被删除了,

    持久cookie则会储存在硬盘里,保留时间更长,关闭浏览器,重启电脑,它依然存在,通常是持久性的cookie会维护某一个用户周期性访问服务器的配置文件或者登录信息。

    cookie的属性

    cookie的域

    产生Cookie的服务器可以向set-Cookie响应首部添加一个Domain属性来控制哪些站点可以看到那个cookie,例如下面:

    Set-Cookie: name="wang"; domain="m.zhuanzhuan.58.com"

    如果用户访问的是m.zhuanzhuan.58.com那就会发送cookie: name="wang", 如果用户访问www.aaa.com(非zhuanzhuan.58.com)就不会发送这个Cookie。

    cookie的路径 Path

    Path属性可以为服务器特定文档指定Cookie,这个属性设置的url且带有这个前缀的url路径都是有效的。

    例如:m.zhuanzhuan.58.com 和 m.zhaunzhuan.58.com/user/这两个url。 m.zhuanzhuan.58.com 设置cookie

    Set-cookie: id="123432";domain="m.zhuanzhuan.58.com";

    m.zhaunzhuan.58.com/user/ 设置cookie:

    Set-cookie:user="wang", domain="m.zhuanzhuan.58.com"; path=/user/

    但是访问其他路径m.zhuanzhuan.58.com/other/就会获得

    cookie: id="123432"

    如果访问m.zhuanzhuan.58.com/user/就会获得

      cookie: id="123432"
      cookie: user="wang"

    secure

    设置了属性secure,cookie只有在https协议加密情况下才会发送给服务端。但是这并不是最安全的,由于其固有的不安全性,敏感信息也是不应该通过cookie传输的.

    Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure;

    chrome 52和firefox 52 开始不安全的(HTTP)是无法使用secure的:

    操作Cookie

    通过docuemnt.cookie可以设置和获取Cookie的值

    document.cookie = "user=wang";
    console.log(document.cookie);

    禁止javascript操作cookie(为避免跨域脚本(xss)攻击,通过javascript的document.cookie无法访问带有HttpOnly标记的cookie。)

    Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2017 07:28:00 GMT; Secure; HttpOnly

    第三方cookie

    通常cookie的域和浏览器地址的域匹配,这被称为第一方cookie。那么第三方cookie就是cookie的域和地址栏中的域不匹配,这种cookie通常被用在第三方广告网站。为了跟踪用户的浏览记录,并且根据收集的用户的浏览习惯,给用户推送相关的广告。

    HTTP Cookie 管理器具备三个功能:
    1. Cookie 管理器就像一个 web 浏览器那样存储并发送 cookie。

    如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 Cookie 管理器会自动将该 cookie 保存起来,而且以后所有的对该网站的请求都使用同一个 cookie。

    注意这些 cookie 不会显示在 Cookie 管理器里,你可以通过察看结果树来对其进行察看。

    当我们遇到需要cookie信息的时候,我们要怎么处理他的请求?

    对待这种需要cookie来获取数据的接口在jmeter里面有两种

    1.直接添加 HTTP Cookie管理器
    1.1 线程组 - 添加 - 配置元件 - HTTP Cookie管理器

  • 相关阅读:
    1
    Dockerfile概述
    协议
    部署环境
    协议与数据2
    【笔记】刚到公司,初识dll
    C#Winform学习笔记
    VS2019添加VisionPro控件(此方法是大师分享的)
    VisionPro脚本
    Visionpro相机取像操作,.NET4.0
  • 原文地址:https://www.cnblogs.com/cyq0528/p/11821651.html
Copyright © 2011-2022 走看看