接口和http协议(一)

一、接口

硬件接口和软件接口

软件接口:前台和后台传递数据的通道

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

posted @ 2021-01-13 18:19  %女王%  阅读(492)  评论(0编辑  收藏  举报