零基础学习接口测试-HTTP消息结构

一、HTTP请求/响应报文

1、HTTP通信过程:

客户端发送请求给服务端,服务端返回响应给客户端。

2、报文:

报文:HTTP协议客户端和服务端之间交互的信息。分为报文首部和报文数据两部分。

请求报文:客户端向服务器提交的请求信息。

响应报文:服务端返回给客户端的响应信息。

3、请求报文结构:

如下图所示:包括请求行、请求头部、空行、请求数据四部分组成。

3.1、请求行:包括请求方法、请求URI和协议版本。

3.2、请求头部:通知服务器客户端的请求信息。键值对形式出现,每行一对,关键字和值用英文冒号“:”分隔。

常用头部字段:

Accept:客户端可接受的信息类型,如text/html,application/xhtml+xml

Accept-Charset:客户端可接受的字符集,如gb2312

Accept-Encoding:客户端可接受的编码方式,如gzip

Accept-Language:客户端可接受的语言类型,如:zh-CN

Authorization:HTTP身份验证的凭证

Content-Length:设置请求体的字节长度,get请求可以没有,post请求必须包含这个

Host:设置服务器域名和TCP端口号,http协议,80端口就可以省略

Referer:客户端通过这个头告诉服务器,它是从哪个资源来访问服务器的,也就是防盗链

User-Agent:包含发出请求的客户端信息,浏览器类型/版本等,如:Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Cookie:在客户端记录信息确定用户身份,设置服务器时使用set-cookie

Cache-Control:怎样处理缓存,例如:Cache-Control: no-cache

From:客户端的的email地址

Connection:告诉服务器这个客户端想要使用怎样的连接方式,值为keep-alive和close

3.3、空行:分隔请求头部和请求数据的。

3.4、请求数据:GET方法中不使用,POST方法中使用。一般是存储post的参数和参数数据。

4、响应报文结构:

包括状态行、响应头部、空行、响应数据

4.1、状态行:协议版本、状态码、状态描述。

4.2、响应头部:服务端返回给客户端的一些描述信息。键值对形式出现,每行一对,关键字和值用英文冒号“:”分隔。

常用头部字段:

Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式。

Content-Length:服务器通过这个头告诉浏览器回送数据的长度。

Content-Disposition:告诉浏览器以下载方式打开数据。

Content-Type:服务器通过这个头告诉浏览器回送数据的类型

Last-Modified:指定服务器上保存内容的最后修订时间。

Location:重定向的跳转的路径

Refresh :定时刷新/定时跳转

server:服务器信息

set-Cookie:cookie信息

4.3、空行:分隔响应头和响应数据。

4.4、响应数据:服务端返回给客户端的数据,例如html页面,json数据等。

二、请求方法

1、最常用的三种请求方法:

get :请求资源(请求指定页面信息,并返回响应数据)

post :向服务器提交数据进行处理请求(提交表单、上传文件),会新建数据或修改/删除数据。

head :与get请求类似,但不返回响应数据,只返回响应头。黑客攻击会就用这个去看服务器信息等。

三、状态码

1、状态码作用:

描述返回的结果。包括服务端返回的响应信息是否正常、服务器是否正常工作、通知出现的错误等。

2、状态码类别:

1XX:指定客户端进行某些动作

2XX:请求处理成功

3XX:重定向

4XX:客户端请求错误

5XX:服务端错误

3、常用状态码:

200 请求成功,服务器成功返回内容。

注意:状态码为200,不代表返回的响应数据一定是对的(一定是我们想要请求的数据),这只代表服务器正常响应了客户端请求。

301 永久重定向

302 临时重定向

400 请求语法错误或参数错误

403 服务器拒绝执行请求

404 服务器找不到请求资源

500 服务器故障无法提供服务

503 服务器超负载或停机维护,一段时间后能提供服务

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200415A0E0XP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券