1、http(超文本传输)协议:是一个基于请求与响应模式的、无状态的(不会记住每个请求的状态)、应用层协议

2、url详解

https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=baidu&wd=http%E5%8D%8F%E8%AE%AE%E9%9D%A2%E8%AF%95%E9%A2%98%E5%9B%9E%E7%AD%94&oq=docker&rsv_pq=e37e8cd70026eaa6&rsv_t=4b4cUZ9m%2BHhijkArcEAgOlZFd%2BbRhOhRhOfuxxlAqD8ghkuUNlaDgOhbNNk&rqlang=cn&rsv_enter=0&rsv_dl=ts_0&inputT=9136&rsv_sug3=19&rsv_sug1=23&rsv_sug7=100&rsv_sug2=1&prefixsug=http%25E5%258D%258F%25E8%25AE%25AE&rsp=0&rsv_sug4=9137

  http/HTTPS:协议类型

  host:主机地址或域名

    --192.168.x.xx:8080 :地址+端口号

    --www.xxx.com:域名

    --localhost:8080 :localhost是本机地址  

  port:端口号

  path:请求的路径,资源存放的路径(host之后,问号?之前)

  ?:问号是分割符号

  参数:name=value

  &:多个参数用&隔开

3、get和post的

  get请求:肯定没有请求body,请求参数放在问号?后面;从服务器上获取资源;请求参数在请求行里,可以在Webforms的QueryString查看

  

  post请求:有请求body(当然请求body也可以为空);向服务器发送数据;请求参数可以是请求行的参数QueryString+body(都可以为空)

    body参数的数据类型 Content-Type:application/x-www-form-urlencoded

    

    post的body常见的数据类型有5种,查看Content-Type里面的头部Content-Type

    第一种:application/json:{"key1":"value1","key2":"value2","key3":false}

    

    第二种:application/x-www-form-urlencoded:key1=xxx&key2=ooo&key3=false

    第三种:multipart/form-data:这是一种表单格式,一般出现在文件上传这种(不是文件上传也可以)

    

    

    第四种:text/xml(一般是用于webservice协议)

    第五种:Content-Type:octets/stream  下载文件

4、请求方法

http1.0定义了三种请求方式:get、post、和head方法

http1.1新增了五种请求方法:options,put,delete,trace和connect方法

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

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

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

put从客户端向服务器传送的数据取代指定的文档的内容

delete请求服务器删除指定的页面

----------------------------------

connect http1.1协议中预留给能够将连接改为管道方式的代理服务器

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

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

5、request组成

请求行、请求头部、空行和请求数据四部分

请求头:

Accept:浏览器可接受的媒体类型

Accept-language:语言

Accept-Encoding:编码格式

User-Agent:客户端类型

Cookie:身份认证

Entity

Content-Type:发送post的时候,body的数据类型声明

6、response结果

http响应也由四个部分组成:状态行、消息报头、空行、响应正文

7、常用状态码

  200 OK//客户端请求成功

  400  Bad Request//客户端请求语法有错,不能被服务器所理解

  401 Unauthorized//请求未经授权,这个状态码必须和www-Authenticate报头域一起使用

  403 Forbidden//服务器收到请求,但是拒绝提供服务(权限问题)

  404 Not Found//请求资源不存在,eg:输入了错误的url

  500 Internal Server Error//服务器发生不可预知的错误

  503 Server Unavailable//服务器当前不能处理客户端的请求,一段时间后可能恢复正常

python接口自动化测试之http协议(一)的更多相关文章

  1. python接口自动化测试之requests库详解

    前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...

  2. python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功

    1.首先在excel中填写好预期结果的值 这里判断接口成功的依据是预期结果值是否存在于接口的返回数据中. 一般接口的返回值都是json对象,我们需要将json对象转换为json格式的字符串 如下图,进 ...

  3. 接口自动化测试之HTTP协议详解

    协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信.所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合. OSI模型 1978年国 ...

  4. Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要

    1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...

  5. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  6. python接口自动化-Cookie_绕过验证码登录

    前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...

  7. python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  8. python接口自动化(Cookie_绕过验证码登录)

     python接口自动化(Cookie_绕过验证码登录) 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以 ...

  9. python接口自动化28-requests-html爬虫框架

    前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...

随机推荐

  1. 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)

    5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...

  2. python命令行工具的使用——argparse

    argparse是一个常用的库函数,使用它的时候我们在命令行中不仅仅可以运行python文件,更可以零时调整参数,十分方便. 首先,如果你只是希望传一丢丢数据进去,那么只看下面两行就行了 import ...

  3. js增删class的方法

    接下来我来介绍两种方法 我们先来一段HTMl代码 <div id="bb"> 你好呀 </div> 接下来我们再来一段css样式 .ob { color:r ...

  4. Spring Boot源码(八):Spring AOP源码

    关于spring aop的应用参见:Spring AOP-基于@AspectJ风格 spring在初始化容器时就会生成代理对象: 关于创建bean的源码参见:Spring Boot源码(六):Bean ...

  5. Wannafly Winter Camp 2020 Day 6I 变大! - dp

    给定一个序列,可以执行 \(k\) 次操作,每次选择连续的三个位置,将他们都变成他们的最大值,最大化 \(\sum a_i\) 需要对每一个 \(k=i\) 输出答案 \(n \leq 50, a_i ...

  6. Pikachu-Sql Inject(SQL注入)

    在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞.一个严重的SQL注入漏洞,可能会直接导致一家公司破产!SQL注入漏洞主要形成的原因 ...

  7. C#浅拷贝与深拷贝测试

    1.浅拷贝与深拷贝 浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用.       深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的. 2.浅拷贝与深拷贝的区别 ...

  8. 在csv表格中修改/追加某行数据

    思路: 文本文件不能随意穿插信息,但是通过使用Seek()方法,可以在读取文本文件中移动光标从而修改所要修改的行. 思路步骤: 1.读取文件,打开csv文件,获取文件流,seek移动光标到开始, fo ...

  9. lvs使用进阶

    之前lvs基础篇(https://www.cnblogs.com/ckh2014/p/10855002.html)中介绍了lvs-dr的搭建,下面我们再复习一下,架构如下: 相关配置 director ...

  10. javascript 权威指南1

    JavaScript是面向web的编程语言 web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在 ...