——————·今天是2020年第27天·——————

这是ITester软件测试小栈第92次推文

接口的定义

1.接口是前后端沟通的桥梁,是数据传输通道,包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口;

2.接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式;

接口的分类

1.按用途:

  • 电脑等信息机器硬件组件间的接口叫硬件接口:2 个不同的事物连接的桥梁,不同的事物就可以进行数据通信;

  • 电脑等信息机器软件组件间的接口叫软件接口:如用户界面 UI , user interface是一种软件接口 ;

2.按结构:

  • 图形用户接口(Graphical User Interface),是人与程序的接口;

  • 应用程序编程接口( Application  Programming Interface)是指外部系统与系统之间以及内部各子系统之间的交互点;

常见的接口类型

1.HTTP接口:基于超文本传输协议(HyperText Transfer Protocol  HTTP)开发的接口,是应用最广泛的网络协议之一,但并不排除没有使用其他协议。基于浏览器/服务器(Brower/Server)的软件系统大多数为HTTP接口;

2.Web Service接口:系统对外的接口,根据提供的方法引用提供的接口,从而获取数据;

3.RESTful接口:简称REST,描述了一个架构式的网络系统;

OSI七层模型

1.OSI的来源

OSI(Open System Interconnect),即开放式系统互联。一般叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

2.OSI七层模型的划分

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图:

3.七层模型的作用

  • 应用层

OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

公司A的老板就是我们所述的用户,他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。

  • 表示层

表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。

  • 会话层

会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会话。

  • 传输层

传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。

传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。

  • 网络层

本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。

网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说,从深圳发往北京的顺丰快递(陆运为例啊,空运好像直接就飞到北京了),首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。这个每个集散中心,就相当于网络中的一个IP节点。

  • 数据链路层

将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。在实际使用中,LLC子层并非必需的。

  • 物理层

实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。

快递寄送过程中的交通工具,就相当于我们的物理层,例如汽车,火车,飞机,船。

4.七层模型通信特点:对等通信

对等通信,为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。在每一层通信过程中,使用本层自己协议进行通信。

HTTP概述

1.什么是HTTP?

超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议,是在 Web 上进行数据交换的基础,是一种 client-server 协议。

  • HTTP协议构建于 TCP/IP 协议之上,是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

  • HTTP是属于应用层的协议,它被设计用于Web浏览器和Web服务器之间的通信,也可以用于其他目的。

  • HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。

  • HTTP是无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态)。虽然通常基于TCP / IP层,但可以在任何可靠的传输层上使用; 也就是说,一个不会静默丢失消息的协议,如UDP。请求通常是由像浏览器这样的接受方发起的。

  • 一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。

  • 通俗来讲,就是计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑)之间进行任何一种通信都必须按照Http协议进行,否则无法连接。

2.HTTP请求特点?

1.支持客户端/服务器模式:客户端发送请求,服务器端响应数据。客户端向服务器请求服务时,只需要传送请求的方法和路径即可。常用的请求方法有get(查)、post(增),除此之外还有put(改)、delete(删)等,每种方法规定的客户端与服务器联系的方式不同,日常工作中见到的最多的是get和post两种。

2.简单灵活:HTTP简单,服务器的程序规模小,通信速度快;HTTP使用TCP作为它的支撑运输协议,HTTP客户机发起一个与服务器的TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP,HTTP运行传输任意类型的数据对象。

3.无状态:协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,(一刀两断,恩断义绝,从此路人)下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。

4.无连接:限制每次连接,使其只处理一个请求。服务器处理完客户端的请求并收到客户端的应答后,即断开连接,这种方式可以节省传输时间。

3.HTTP与HTTPS的区别?

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(SecureSocketsLayer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTP与HTTPS都是应用层协议,且本质上没有什么不同。他们的区别相对来说就是HTTPS是HTTP的安全版,HTTP信息是明文传输,而HTTPS是具有安全性的SSL加密传输,安全性要高于HTTP协议。且两者使用的端口也不一样,HTTP默认使用80端口,而HTTPS使用443端口。

HTTPS和HTTP的区别主要如下:总的来说:HTTPS=SSL+HTTP

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

(这个只是默认端口不一样,实际上端口是可以改的)

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4.Cookie和Session的区别?

Cookie 是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。另外一个更准确的说法是:Cookie 是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器,是一种在客户端保持状态的方案。由于 HTTP 协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是 Session。

Cookie和Session是解决http协议的无状态性,区别如下:

1.存储位置不同:Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;

2.存储容量不同:单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

3.存取方式不同:Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;

4.隐私策略/安全性不同:Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;

5.有效期不同:Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;

6.服务器压力不同:Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;

7.浏览器支持不同:如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;

8.cookie和session应用的场景:

cookie:用户的登录状态,记录用户的习惯,购物车;

session:登录验证;

以上

That's  all

ITester软件测试小栈

往期内容宠幸

叮—这有一打让你666的测试终极资料包,请查收!

打开PyCharm永久激活的这两个锦囊,再也不用担心写代码的时候让我付费了!

QQ空间面试题放送,速度教科书式扑街补救offer!

金九银十加薪季,测试题预热一波。

测试面试题集-测试基础理论

测试面试题集-测试用例设计:登录、购物车、QQ收藏表情、转账、充值、提现

测试面试题集-生活物品测试:杯子、伞、钢笔、桌子

Selenium系列文章汇总

Fiddler基本使用

Fiddler抓包介绍

速看,APP测试之ADB最全指南!

APP测试之Monkey压力测试(一)

APP测试之Monkey压力测试(二)

快来星标 置顶 关注我

后台 回复资源取干货

想要获取相关资料和软件 ?

测试交流Q群:727998947

Python接口自动化-接口基础(一)相关推荐

  1. python+pytest接口自动化-接口测试基础,http协议基础(一)

    目录 前言: [文章末尾给大家留下了大量的福利] 接口定义 接口分类 常见接口 测试分层 测试左移和右移 总结 HTTP协议简介 HTTP协议特点 HTTP接口请求方法 HTTP与HTTPS区别[重点 ...

  2. 接口自动化-接口自动化测试注意情况

    1.get和post的区别? GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交). GET书签可收藏,POST为书签不可收藏. GET能被缓存,POST不能缓存 ...

  3. 接口自动化-接口自动化测试框架梳理

    自动化测试框架梳理 框架的意义:可读性,可维护性,可扩展性 1.数据与代码分离,(数据驱动)==数据驱动框架==例如:参数不一样,响应不一样 2.结构分层(数据层,用例层,逻辑性)逻辑层:公用的方法, ...

  4. python自动化读取和写入文件_基于Python的接口自动化实战-基础篇之读写配置文件...

    引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...

  5. python 接口自动化的sql验证_基于Python的接口自动化实战-基础篇之pymysql模块操做数据库...

    引言 在进行功能或者接口测试时经常须要经过链接数据库,操做和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操做是否正确等.所以,在进行接口自动化测试时,咱们同样绕不开接 ...

  6. Python接口自动化-接口基础(二)

    ------·今天是2020年第28天·------ 这是ITester软件测试小栈第93次推文 一 HTTP请求方式 1 常见请求方式 方法 描述 GET 请求指定的页面信息,并返回实体主体 HEA ...

  7. python接口自动化接口依赖_Python接口自动化之mock模块简单使用

    mock简介 mock原是python的第三方库,python 2可以直接安装mock模块,但在python 3.3以后mock模块已经整合到了unittest测试框架中,不需要再单独安装. Mock ...

  8. 接口自动化-接口请求数据准备-如何生成随机姓名、年龄、号码、email等

    在做接口自动化测试的时候,经常需要一些随机的测试数据,这里提供一个个人使用的生成随机值的工具类,主要内容都已在代码中注释: package com.gvbrain.appApi.Utils;impor ...

  9. Python接口自动化之动态数据处理

    VOL 135 15 2020-06 今天距2021年199天 这是ITester软件测试小栈第135次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

最新文章

  1. 活动目录实战系列六(win98客户端加入域)
  2. CTreeCtrl 控件实现多选并取得选中项
  3. 央视曝光:刷单实为非法商业模式 步步设置全是套路
  4. 【算法与数据结构】一道检测inversion count的初级算法
  5. 如何在验证集加噪声_B端硬件如何开展产品测试?
  6. oracle asm 分布式存储,分布式数据中心数据库和存储部署解决方案
  7. 接口-----java
  8. Log4j配置学习文档之一 log4j配置
  9. 2017计算机湖北对口试题答案,2017年计算机专业对口考试试卷及答案
  10. python sorted .sort()
  11. 基于麻雀算法改进的LSTM分类算法-附代码
  12. ubuntu编译安装vim7.4
  13. 【UVALive - 7344】Numbered Cards【数位DP+状压DP】
  14. 金融行业的JAVA软件开发
  15. synchronized原理
  16. 1999年秋浙江省计算机等级考试二级c 编程题,2004年秋浙江省计算机等级考试二级C 编程题(2) (C++代码)...
  17. Java多线程学习(吐血超详细总结)【转】
  18. 【毛坦厂复读生心中所想】—— 我在大学挺好的【内附学习资源和路线】
  19. RK3399 Android7.1修改安兔兔等读到的cpu最大频率为1.992GHz
  20. 计算机实验报告word结果总结,计算机网络实验报告.doc

热门文章

  1. 杭电2122Ice_cream’s world III
  2. 杭电2108判断凹凸边形
  3. mac下 home-brew安装及php,nginx环境安装及配置
  4. 随想录(编译器是怎么工作的)
  5. docker源码编译 linux_oracle linux 6 docker 安装(包括编译git源码)
  6. window php composer,Window下安装php composer
  7. jdbc和mysql编程_MySql数据库与JDBC编程三
  8. 10天基于STM32F401RET6智能锁项目实战第1天(环境搭建和新建工程)
  9. 安装两个mysql3308_在同一台机器上安装两个版本的MySQL
  10. 拦截 数据_大数据之六类Flume拦截器配置