接口基础知识
接口的含义
从功能层面上来说,接口就是连接上游【输入参数】和下游【输出参数】的纽带
从数据流层面来说,是连接前端【web页面,app等】和数据库【database】等后端的纽带,用于在二者之间传递数据,处理数据
从编程层面来说,接口就是为业务逻辑处理方法的外在表现形式
接口分类
根据系统调用方式可以将接口分为两类
1、系统之间的接口,一般是第三方接口
2、服务之间的接口,即应用层,服务层和数据层
应用层:负责展示数据和发起数据请求。
服务层:为应用层提供数据处理。
数据层:用来存储数据,有关系型数据库等。
HTTP接口
应用场景:web网站,OA服务等
组成部分:请求地址,消息报头,请求正文
响应部分:状态码,消息报头,响应正文
发送请求方式:GET,POST,PUT和DELETE
(1)GET:向特定的资源发出请求。
(2)POST:向指定资源提交“数据进行处理”请求(例如,提交表单或者上传文件),数据被包含在请求体中。POST请求可能导致新的资源的创建,以及(也可能是“或”)已有资源的修改。
(3)PUT:向指定资源位置上传其最新内容。
(4)DELETE:请求服务器执行删除操作。
GET和POST的区别
区别一:对请求参数的处理方式不同(直观的区别)
(1)GET请求:请求的数据会附加在URL之后,以“?”分隔URL和传输数据,如有多个参数则用“&”连接。URL采用的是ASCII编码格式,而不是Unicode编码格式,即所有的非ASCII字符都要在编码之后再传输。
(2)POST请求:POST请求会把请求的数据放置在HTTP请求包的Body数据中,数据包的形式可以是“参数名1=参数值1&参数名2=参数值2”,也可以是JSON格式(键值对)。当然,JSON格式是一种通用的方式。
区别二:传输数据的大小不同
GET:特定浏览器和服务器对URL的长度有限制。例如,IE对URL长度的限制是2083Byte(2×1024Byte+35Byte)。其他浏览器(如Netscape、FireFox等)在理论上没有长度的限制,其限制取决于操作系统的支持。因此,在采用GET方式提交数据时,传输数据会受到URL长度的限制。
POST:由于不是通过URL传值,在理论上数据的大小不受限制。但实际上,各个Web服务器会对采用POST方式提交的数据的大小进行限制,例如,Apache、IIS6都有各自的配置。
区别三:安全性不同
POST方式的安全性比GET方式的安全性高。使用GET方式时,在地址栏里可以直接看到请求数据,采用这种方式可能受到Cross-site request forgery攻击。
POST方式需要抓包才能获取到数据,变相地提高了安全性。