软件测试 | HTTP的报文结构

518 篇文章 3 订阅
514 篇文章 2 订阅
HTTP是万维网数据通信的基础,其报文由开始行、首部行和实体主体三部分组成。请求报文包含请求行、首部行,通常无实体主体;响应报文有状态行、首部行和实体主体。常用请求方法为GET和POST,状态码分为1xx到5xx五类,表明请求处理的不同阶段和问题。
摘要由CSDN通过智能技术生成

1.HTTP定义

HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。客户端向服务器发送HTTP请求,服务端则会在响应中返回所请求的数据。了解了HTTP,才能对接口测试进行更深入学习。

2.HTTP报文结构

HTTP请求报文和响应报文都是由3部分组织。

开始行:请求报文中叫请求行,响应报文中叫状态行。

首部行:用来说明服务器或报文主体的一些信息。

实体主体:请求报文中一般不使用,响应报文中也没有。

(1)请求报文

请求(requests)报文结构如图6-23所示。

 1)请求行:请求方法、请求资源的URL、HTTP版本等信息。

2)首部行:包括主机域名、连接信息、用户代理等信息。

3)实体主体:一般不使用。

请求信息的实例:

> GET  /uploads/user/avatar/31438/8216a3.jpg\u0021md HTTP/1.1
> Host: testerhome.com
> Accept-Encoding:deflate,gzip
> Connection: keep-alive
> User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10_15_0)\
  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36
> Sec-Fetch-Dest: image
> Accept: image/webp,image/apng,image/*,*/*;q=0.8
> Sec-Fetch-Site: same-orgin
> Sec-Fetch-Mode:no-cors
​
> Referer: https://testerhome.com/
> Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
> Cookie: user_id-bnVsbA%3D%3D--69ec4bae7d601a6036395dbe51d1d2ffcd6fa592;\
_homeland_session=7Sukl%2FrozWDlCgKard4LDAggLFboqpOh202tuEDrKAJQsGcBr%2BEo\
5YfUSQ%2BzCnQjz2YqVdLJZynbXI7rd96gawXmb%2FckmcX0VRzKeJUzg%2FddCkdLxHrPxOwD\
BugHvSRINOfLKfJSrX%2F7u%2BJqx8zJ%2FUzMrdBw9PqmLTgKp9qG2hVRMmFvRdLoAg3HjOWQ\
XoYmEkMwlfG%2BJTFpE2D8IdyN49iAKEcCu8mY%2fWYUXg%2FNdYyLZ29AEkdLU%2BFhUlGIXZ\
yYnBIfB4B34z%2BuwST1%2F2WzOLr0YYaVC7MmYg%3D%3D--5Lp2FdyHJUsrhoaz--iUv%2Bpl\
4%2Bz76Qteb%2FsjsKHQ%3D%3D; _ga=GAl.2.877690763.1584004389; _gid=GAl.2.135\
846535.1584004389; _gat=1
>

请求报文发方法和意义如表6-4所示。

方法意义
OPTION请求一些选项信息
GET请求读取由URL所标志的信息
HEAD请求读取由URL所标志的信息的首部
POST给服务器添加信息
PUT在指明的URL下存储一个文档
DELETE删除指明的URL所标志的资源
TRACE用来进行环回测试的请求报文
CONNECT用于代理服务器

常用的请求报文的方法为GET和POST。

(2)响应报文(见图6-24) 

1)状态行:HTTP版本、状态码、解释状态码的短语等信息。

2)首部行:服务器信息、时间、内容类型、内容长度等信息。

3)实体主体:服务器发送给客户端的内容。响应信息的示例如下:

< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Data: Thu, 12 Mar 2020 09:13:44 GMT
< Content-Type: image/png
< Content-Length:11390
< Last-Modified: Sat,27 Jan 2018 13:51:30 GMT
< Connection: keep-alive
< ETag:"5a6c83e2-2c7e"
< Accept-Ranges: bytes
<

(3)状态码

状态码由三位数字组成,第一位数字定义了状态码的类型,共有5大类,如下。

1)1xx表示通知信息,如请求收到了或正在进行处理。

2)2xx表示成功,如接受或知道了。

3)3xx表示重定向,需要进一步的操作以完成请求。

4)4xx表示客户端的差错。

5)5xx表示服务器的差错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值