产品经理在工作中,避免不了要阅读接口文档,希望本文能够帮助大家更好的了解接口。
接口,即客户端(浏览器)向服务器提交请求,服务器向客户端返回响应。本质就是数据的传输与接收。
本文主要介绍接口相关的基础知识,包含接口的请求与响应、接口类型以及网络协议。
一、请求与响应
1. 我们先来看一下请求 Request
它主要分为 3 个部分:General、Request Headers、Form Data. 我们来分别看一下每部分的详细信息。
对于 General 部分,我们着重掌握下面这3个信息即可。
Request URL 代表的是请求的 Url 地址;
Request Method 代表的是请求方法,常用的请求方法有 Get、Post、Put、Delete。其中,应用最多的是 Get 和 Post 这 2 类。一般 Get 请求用来获取数据,Post 请求用来发送数据;
Status Code 代表的是状态码,常见的状态码有下面几类,本例中的 200 OK 表示请求正常处理完毕。
Request Headers 即请求头,我们对主要字段进行逐一的介绍;
- Accept: 告诉服务器我们能接受的文件类型,服务器端使用 Content-Type 应答头通知客户端它的选择 ;
- Accept-Language: 客户端所使用的语言;
- Accept-Encoding: 客户端能接受的编码格式 gzip : 压缩字节,为了节约带宽,将服务器发送的内容先通过 gzip 压缩后发给客户端,客户端再解压展示。HTTP 2.0 可以压缩 header部分 HTTP1.1 只能压缩 body 部分;
- Connection:有2种,分别是长连接和短连接:
- Keep-Alive-长连接:长连接就类似于打电话,我们之间可以一直保持连接状态,直至挂断电 话。缺点是一直占用连接池,直至连接超时。
- 短连接:短连接类似于发短信,我给你发送一条消息后,我们之间的连接即终止,每次发短信, 都要新建一次连接。接口都是短连接,网站都是长连接。因为接口往往是针对某一个调用返回,接口一直为某个用户服务时,才会长连接。
- User-Agent: 告诉服务器我的客户端的类型,服务器通过user-agent来识别客户端。
最后,我们来看一下 Form Data 请求体,
这部分,就是客户端要发送给服务器端的数据,可以看到,这个请求的 Form Data 中包含了用户名、密码等信息。我们会在发送请求时,把这些信息一并发送给服务器。
该例中,是一个 Post 请求,如果是 Get 请求,要传输的参数会在 url 中显示,通过 ‘ ? ’ 与请求地址隔开。形式如下:
2. 响应 Response
Response 主要分为 2 个部分,Header 部分和 Body 部分,这 2 部分展示如下图所示;
Header 部分的内容,多数是与请求头相对应的,Body 部分就是浏览器看到的内容。
在有的 Response 响应头中,会有这样一个字段 Last-modified,在这里为大家介绍一下。
Last-modified 显示的是服务器上文件的最后修改时间,当我们请求时,会判断该文件的最后修改时间和本地上的文件时间是否是一致的,如果一致,那么 body 部分会直接用缓存,不再下载,只下载 header 就可以了,这样可以提高效率,节省网络资源。
二、接口类型
比较常见的接口类型有 WebService 和 HTTPService ,它们有如下主要区别:
- 基于不同的协议:HTTPService 基于 Http 协议,而 WebService 基于 soap 协议;
- 跨域的处理:HttpService 方式不能处理跨域,如果调用一个其它应用的服务就要用WebService;
- 处理数据效率不同:HTTPService 效率较高,而 WebService 能处理较复杂的数据类型。
当调用一个本服务的内容时,不涉及到跨域的问题,可以使用 HttpService 的方式。
如果,需要在后台调用一个其它应用的服务,这个时候,就必须要用 WebService 的方式来调用。
简单的说, WebService 是不依赖于语言,不依赖于平台,可以实现不同的语言、异构系统间的相互调用。
三、网络协议
我们常常听说 TCP/IP 协议,其实,TCP/IP 协议是一个协议簇,里面是包括很多协议的,之所以命名为 TCP/IP 协议,是因为 TCP、IP 协议是两个很重要的协议,所以就用他们命名了。
一个 TCP 连接必须要经过三次“对话”才能建立起来。
大家应该都听说过3次握手,但不知道具体是怎么回事,在这里为大家形象的解释下3次握手的过程:
主机 A 先向主机 B 发出连接请求的数据包:“我想给你发数据,是否可以”,这是第一次对话;
接下来,主机B向主机A发送数据包:“可以,什么时候发?”,这是第二次对话;
接下来,主机A再发出一个数据包:“现在就发”,这是第三次对话。
经过三次“对话”之后,主机A才向主机B正式发送数据。
这就是我们常常听说的3次握手的过程。
那么,不光有3次握手,当断开连接时,我们还需要4次挥手:
A: 数据传完了,可以停止吗?
B: 消息收到,请稍等!
B: 好了,可以停止了。
A: 好的,过一会儿没有消息我就关闭啦。
最后,通过上面的介绍,我们了解了接口的请求与响应信息,接口的主要类型以及它们的主要区别,另外,还为大家科普了 3 次握手和 4 次挥手的过程,希望帮助大家掌握对接口更深层次的理解。