常见的接口协议:
1、HTTP 超文本传输协议
2、HTTPS 安全超文本传输协议
3、FTP 文件传输协议( Xshell的文件拖拽)
4、TCP 网络控制协议
5、IP 互联网协议
6、UDP 用户数据协议
常用到的接口:
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTP与HTTPS的区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
REST风格接口介绍
就是用URL定位资源,用HTTP动词(GET,POST,DELETE,PUT
)描述操作;
举个栗子:
URL 用来定位资源,跟要进行的操作区分开,这就意味这 URL 不该有任何动词。
比如,我们有一个friends接口,对于“朋友”我们有增删改查四种操作,怎么定义REST接口?
增加一个朋友,uri: generalcode.cn/va/friends 接口类型:POST
删除一个朋友,uri: generalcode.cn/va/friends 接口类型:DELETE
修改一个朋友,uri: generalcode.cn/va/friends 接口类型:PUT
查找一个朋友,uri: generalcode.cn/va/friends 接口类型:GET
上面我们定义的四个接口就是符合REST协议的,这几个接口都没有动词,只有名词friends,都是通过Http请求的接口类型来判断是什么业务操作。定义这样一套统一的接口,在web,ios,android三端都可以使用相同的接口,十分方便。
http接口的构成(举例说明:查看vdc接口)
request header
GET /api//cloud/virtualdatacenters?enterprise=1 HTTP/1.1 请求方式/接口地址/HTTP版本
Host: 192.168.3.183 主机IP地址
Connection: keep-alive 保持连接状态(如果设置了代理抓包,就会变成Proxy-Connection )
Accept: application/vnd.esage.virtualdatacenters+json;version=3.0 客户端希望接收的数据类型
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 用户代理(想访问网站提供所使用的浏览器类型、版本、操作系统)
Referer: http://192.168.3.183/ui/navroute/hypervisor 指示改请求从哪儿链接过来的(防盗链/统计网站流量)
Accept-Encoding: gzip, deflate 客户端发送给服务端,声明服务端支持的接收内容编码
Accept-Language: zh-CN,zh;q=0.9 客户端发送给服务端,声明服务端支持的接收接收语言
Cookie: token=1cb9a9e4-6eb1-4ef8-838c-b9e1322813e3; ESGSESSIONID=6257001126885626317; auth=bGl4aWFvcWlhbjoxNTY3MTU1NTgwMzkxOjI5NWZjM2ZjMmIxY2U0ODNlNDRkNjQ2MzI3NjA5NWE5OkVTQUdF 用户Cookie信息(用户登录的时候,认证成功后,会返回token和auth,在下次请求拼接成一个Cookie信息)
response header
HTTP/1.1 200 OK HTTP版本/响应码
Date: Fri, 30 Aug 2019 08:16:16 GMT 响应返回时间
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips 服务器信息
Set-Cookie: auth=bGl4aWFvcWlhbjoxNTY3MTU2NTc2MDY5OjkzZGIxNWUyMGQ3NWY1ZmRjNGU2NGYzY2IxZGE2MTM3OkVTQUdF; Expires=Fri, 30-Aug-2019 09:16:16 GMT; Path=/; HttpOnly
Content-Type: application/vnd.esage.virtualdatacenters+json; version=3.0 表示实际发送的数据格式
Keep-Alive: timeout=5, max=96 过期时间5s,max过了96s,强制断掉链接(max会自动减1,直到为0,会强制断掉链接)
Connection: Keep-Alive 保持连接状态
Transfer-Encoding: chunked 分段传输数据方式(HTTP数据传输数据方式,运行服务器发送给客户端的数据可以分成多个部分, Content—length表示数据的长度,可以知道什么时候截数据)