接口,即客户端(浏览器)向服务器提交请求,服务器向客户端返回响应。本质就是数据的传输与接收。
一、请求与响应
1. 我们先来看一下请求 Request
nerror="javascript:errorimg.call(this);">
对于 General 部分,我们着重掌握下面这3个信息即可。
nerror="javascript:errorimg.call(this);">
Request Method 代表的是请求方法,常用的请求方法有 Get、Post、Put、Delete。其中,应用最多的是 Get 和 Post 这 2 类。一般 Get 请求用来获取数据,Post 请求用来发送数据;
Request Headers 即请求头,我们对主要字段进行逐一的介绍;
nerror="javascript:errorimg.call(this);">
- 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 中包含了用户名、密码等信息。我们会在发送请求时,把这些信息一并发送给服务器。
2. 响应 Response
Header 部分的内容,多数是与请求头相对应的,Body 部分就是浏览器看到的内容。
Last-modified 显示的是服务器上文件的最后修改时间,当我们请求时,会判断该文件的最后修改时间和本地上的文件时间是否是一致的,如果一致,那么 body 部分会直接用缓存,不再下载,只下载 header 就可以了,这样可以提高效率,节省网络资源。
比较常见的接口类型有 WebService 和 HTTPService ,它们有如下主要区别:
- 基于不同的协议:HTTPService 基于 Http 协议,而 WebService 基于 soap 协议;
- 跨域的处理:HttpService 方式不能处理跨域,如果调用一个其它应用的服务就要用WebService;
- 处理数据效率不同:HTTPService 效率较高,而 WebService 能处理较复杂的数据类型。
如果,需要在后台调用一个其它应用的服务,这个时候,就必须要用 WebService 的方式来调用。
三、网络协议
一个 TCP 连接必须要经过三次“对话”才能建立起来。
主机 A 先向主机 B 发出连接请求的数据包:“我想给你发数据,是否可以”,这是第一次对话;
接下来,主机A再发出一个数据包:“现在就发”,这是第三次对话。
这就是我们常常听说的3次握手的过程。
A: 数据传完了,可以停止吗?
B: 好了,可以停止了。
最后,通过上面的介绍,我们了解了接口的请求与响应信息,接口的主要类型以及它们的主要区别,另外,还为大家科普了 3 次握手和 4 次挥手的过程,希望帮助大家掌握对接口更深层次的理解。
题图来自Unsplash,基于CC0协议

