4-HTTP协议介绍+Jmeter脚本录制

本文介绍了HTTP协议的基本概念,包括其工作流程、URL、请求消息和响应,以及HTTP请求头域和响应码。此外,还探讨了Cookie、Session和Token的原理与区别。最后,简述了Fiddler和JMeter这两种抓包工具的使用方法,特别是JMeter如何进行HTTP代理录制。
摘要由CSDN通过智能技术生成

HTTP协议简介--超文本传输协议

  • HTTP协议(HyperText Transfer Protocol)是请求/响应协议:客户端发送请求到服务器,服务器响应该请求。
  • 当前版本为1.1版本。
  • HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。

URL--统一资源定位符

  • URL=http://主机名:端口/路径?查询
  • 如果没有指定端口,那么默认使用80端口
  • URL(Uniform Resource Locator)是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
  • 基本URL包含:
  1. 模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。
  • 完整的、带有授权部分的普通统一资源标志符语法看上去如下:

      2.协议://用户名:密码@子域名.域名.顶级域名:端口号目录/文件名.文件后缀?参数=值#标志。

HTTP工作流程:

                                                              http工作流程图 

 一次HTTP操作称为一个事务,其工作过程可分为四步:

  1. 首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
  2. 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
  3. 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  4. 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

HTTP请求消息

发出的请求信息包括以下几个:

  • 请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
  • (请求)头,例如Accept-Language:en
  • 空行
  • 可选的消息体,请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其它空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。
  • HTTP请求消息实例:

常见的HTTP请求头域

请求头域说明
Accept-Charset用于指定客户端接受的字符集
Accept-Encoding用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate
Accept-Language用于指定一种自然语言,如:Accept-Language:zh-cn
Host用于指定被请求资源的Internet主机和端口号,如:Host:www.taobao.com
User-Agent客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection当前连接是否保持,如Connection:Keep-Alive

HTTP请求方法

GET:请求服务器特定的资源

POST:向指定资源提交数据进行处理请求

  • GET特点:

1.安全性不高,客户端浏览器可以明文看到;

2.所有的请求内容放在URL,有字符长度限制小于255,只能是字符类型,不能是图片;

3.浏览器里的浏览历史里面有记录;

4.速度相对较快;

使用场景:一般只是获取访问请求,一般不做提交数据(账号、密码)

  • POST特点:

1.安全性相对较高,

2.没有类型要求

3.速度相对较慢

4.浏览器器记录里没有详细数据

使用场景:数据的提交

如果要查看post的数据: 可以用抓包工具。

  • GET方法和POST方法区别--安全相关

GET方法提交数据不安全,数据置于请求行,客户端地址栏可见;

GET方法提交的数据大小限制在255个字符之内。

POST方法提交数据安全,数据置于消息主体内,客户端不可见;

POST方法提交的数据大小没有限制。

HTTP响应

  • 客户端向服务器发送一个请求,服务器返回响应,HTTP响应也由四个部分组成,分别是:状态行、(包括HTTP协议版本,返回状态码)消息报头(响应头)、空行和响应正文。
  • 根据响应的类别,服务器响应可以含响应正文,但并不是所有的响应都有响应正文。
  • Set-Cookie由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个Cookie.
  • Cookie头由客户端发送,包含在HTTP请求的头部中。注意,只有cookie的domain和path与请求的URL匹配才会发送这个cookie。

常见的HTTP响应头

响应头说明
Server使用的服务器说明,如S二女儿:Apache/1.3.6(Unix)
Content-Type用来说明发送给接收者的实体正文的媒体类型,如Content-Type:text/htmel;charset=GBK
Content-Encoding与请求报头Accept-Enconding对应,告诉浏览器服务端采用的是什么压缩编码
Content-Language描述了资源所使用的自然语言,与Accept-Language对应
Content-Length指明实体正文的长度,用以字节方式存储的十进制数字表示
Keep-Alive保持连接的时间,如Keep-Alive;timeout=5,max=120

HTTP响应码

Status-CodeReason-Phrase
1xx信息响应类,表示接收到请求并且继续处理
2xx处理成功响应类,表示动作被成功接收、理解和接受
3xx重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx客户端错误,客户请求包含语法错误或者是不能正确执行
5xx服务端错误,服务器不能正确执行一个正确的请求

Cookie、Session和Token的介绍

Cookie

  1. cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
  2. cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

工作流程:

1-服务器产生cookie;2-通过http协议传输给浏览器;3-浏览器保存在本地;4-下一次请求会自动获取。

特点:

1-安全不高;2-cookie欺骗(2013/3/15事件);3-可以获取本地的cookie--kv格式在本机操作,XSS脚本用于安全测试。

 

session---会话id

特点:1-保存在服务器里面;2-会消耗服务器资源;3-安全性相对cookie高。

劣势:服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

Token

在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式

以下几点特性会让你在程序中使用基于Token的身份验证

1.无状态、可扩展

 2.支持移动设备

 3.跨程序调用

 4.安全

Fiddler抓包工具简介

  • Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。
  • 在打开Fiddler它的那一瞬间,它就已经设置好了浏览器的代理了。
  • 当你关闭的时候,它又帮你把代理还原了,所以一般不需要手动设置。

JMeter抓包工具简介

 1)测试计划中添加非配置元件-http代理服务器
2)http代理服务器设置Jmeter代理端口
3)测试计划中添加线程组,并在http代理服务中选择该线程组作为目标控制器
4)浏览器中设置代理服务器,ip为Jmeter所在主机的ip地址,端口为http代理服务器设置的端口
5) 启动http代理,浏览器中访问相关页面,jmeter会自动录制该操作过程的请求信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值