接口测试之基础篇--http协议

Posted 雷子说测试开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试之基础篇--http协议相关的知识,希望对你有一定的参考价值。

  概念:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议

      HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

HTTP 请求/响应的步骤:

1、客户端连接到Web服务器

2、发送HTTP请求

3、服务器接受请求并返回HTTP响应

4、释放连接TCP连接

5、客户端浏览器解析HTML内容

HTTP请求

 是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标识符及使用的协议。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

 

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,

  HTTP请求信息由3部分组成:

(1)请求方法URI协议/版本

      (2) 请求头(Request Header)

      (3) 请求正文

 

http请求方法

   GET 请求指定的页面信息,并返回实体主体。

   HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 

  POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 

  PUT 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE 请求服务器删除指定的页面。 

  CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

  OPTIONS 允许客户端查看服务器的性能。

  TRACE 回显服务器收到的请求,主要用于测试或诊断。

  1. http请求头

   Accept: 浏览器可接受的MIME类型。

  Accept-Charset:浏览器可接受的字符集。

  Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。

  Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。

  Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。

  Content-Length:表示请求消息正文的长度。

  Host: 客户机通过这个头告诉服务器,想访问的主机名。Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。

http响应

        Allow:服务器支持哪些请求方法(如GET、POST等)。

  Content-Encoding:文档的编码(Encode)方法。

  HTTP-Version表示支持的HTTP版本

  Status-Code是一个三个数字的结果代码

  Request Method 请求方式

  reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,

  Reason-Phrase主要用于帮助用户理解。

  Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。

  1xx:信息响应类,表示接收到请求并且继续处理

  2xx:处理成功响应类,表示动作被成功接收、理解和接受

  3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理

  4xx:客户端错误,客户请求包含语法错误或者是不能正确执行

  5xx:服务端错误,服务器不能正确执行一个正确的请求

  Remote Address:终端ip

  Content-Length:表示内容长度

      Date:当前的GMT时间

  Expires:告诉浏览器把回送的资源缓存多长时间

  Last-Modified:文档的最后改动时间。

  Refresh:告诉浏览器隔多久刷新一次,以秒计。

  Server:服务器通过这个头告诉浏览器服务器的类型。Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。Servlet一般不设置这个值,而是由Web服务器自己设置。

  Set-Cookie:设置和页面关联的Cookie。Servlet不应使用response.setHeader(“Set-Cookie”, …),而是应使用HttpServletResponse提供的专用方法addCookie。

      Transfer-Encoding:告诉浏览器数据的传送格式。

  WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息?

 

  新建python接口测试交流群 :651392041

  

 


以上是关于接口测试之基础篇--http协议的主要内容,如果未能解决你的问题,请参考以下文章

你真的懂接口测试基础之TCPUDP和TCP/IP协议组吗?

接口测试之基础

接口自动化测试--基础篇

接口测试-进阶技能篇之WebSocket接口

JMeter接口测试之HTTP GET请求设置方法

JMeter之Http协议接口性能测试