一、接口
硬件接口和软件接口
软件接口:前台和后台传递数据的通道
API:application programming interface应用程序可编程接口
API:web API/Http API 和 其他API
我们通常所说的API就是web API/Http API,需要联网,需要使用web协议,而其他API不需要联网,不需要使用web协议,比如os.path.abspath()此处就是一个api。
接口的作用:连接两个不同的事物,传递数据,实现交互
以下都是对接口的解说:
1)前后台数据交互的通道
2)一个功能的实现
3)接口的本质:其实就是后台一个函数,接口文档里面描述的接口参数其实就是函数的参数,接口的返回数据就是函数的返回值,函数公开访问才能是接口
4)别人可以访问到的函数就叫API
5)接口,两个事物之间进行适配的一种工具、规范和协议。
二、HTTP协议
1、协议:双方需要遵守的规则和约定,具有法律效益
如网络协议:需要使用Internet,就需要遵守internet的协议,不然你发送了信息,别人也收不到。
2、模式
C/S模式
1)我们通常所说的C/S模式,大部分都是指的pc端桌面应用程序与server的形式。其实是不严谨的
2)B/S:Browser/Server:浏览器是客户端,B/S也是C/S的一种
3)客户端client:能够发起对应请求,主动发起请求
4)服务端server:被动接收请求,并处理请求,返回处理结果,轮询,等待请求
P2P(peer to peer)端对端
1)端对端,每个端都既做服务端又是客户端
2)种子
3、HTTP 请求
1)请求首行
url:域名或者ip地址 端口号
请求方法:get、post、put、delete、head、options、connect等,常用的get、post、put、delete
get和post的区别:
GET表示获取资源,POST表示创建资源
GET:传递参数:query string 查询字符串,放在url地址中,?key=value&key2=value2的形式;POST不仅可以使用query string,而且还能将数据放在请求体里
GET没有请求体,POST有请求体
POST:传递参数form/json;query string查询字符串
POST传递数据更多些,因为传入数据多,所以速度相对慢些
POST比GET安全
方法解说:
get:请求展示指定的资源,用于获取资源
post:用于提交指定资源的实体,通常会改变服务器的状态或副作用,用于修改,创建,删除相关资源
put:用于取代指定资源的表现,用于修改指定资源
options:允许客户端查看服务器的性能。
delete:删除指定资源
head:与get方法相同的回应,但它没有回应的主体
connect:会和指定资源标明的服务器之间建立隧道
TRACE 回显服务器收到的请求,主要用于测试或诊断。
PATCH 实体中包含一个表,表中说明与该URI所表示的原内容的区别
COPY 请求服务器将指定的页面拷贝至另一个网络地址。
LINK 请求服务器建立链接关系。
UNLINK 断开链接关系。
WRAPPED 允许客户端发送经过封装的请求。
Extension-mothed 在不改动协议的前提下,可增加另外的方法。
远程ip地址
协议版本
2)请求头
User-Agent:用户代理-----》发送请求的载体
content-type:发送请求数据的格式,由开发决定
cookie:
3)请求体
4、HTTP响应
1)响应首行
状态码:是用以表示网页服务器超文本传输协议响应状态的3位数字代码
1XX:Informational 信息(啥都不用做,知道就好)
2XX:Successful成功(啥也不用做,知道就好)
201:POST创建成功后要返回201
204:资源修改成功
3XX:Redirection重定向(重新请求返回的新地址-》才能获取真正需要的数据)
301:永久重定向
302:临时重定向
304:not modified(缓存)
4XX:Client Error客户端的错误(确保用正确的参数和信息正确,重新请求)
401:没有权限访问(用户名没有登录)
403:禁止访问(用户登录了,但是没有权限访问,比如需要更高权限进行修改和删除数据)
404:找不到资源
405:Method not allow,方法不对,比如需要使用get方法,但是使用了post
5XX:Server Error服务器端的错误(一般来说都无需啥操作-》往往需要服务器端改了bug后,重新发送请求)
500:服务器内部错误
2)响应头
content-type:服务器返回的数据格式,由开发决定
set:cookie
3)响应体
返回的数据
json,text,html