Python接口自动化-接口基础(一)
一、接口的定义
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:登录验证;
更多系列文章,可以关注微信公众号:ITester软件测试小栈