一、接口相关知识

一、什么是接口

解释1:服务端为客户端提供数据增删改查的桥梁,因为客户端与数据库是不能直接交互的,所以需要服务端处理,那么服务端就是客户端与数据库的桥梁,也就叫做接口。

解释2:客户端为了实现功能,需要请求更删改查服务端的数据,而和服务端定义的一个协议,这也叫做接口。

二、接口的组成结构

1、接口的请求结构:HTTP的URL是怎么组成为一个接口的,如下:

一、接口相关知识
2、请求协议
http — 普通的http请求
https — 加密的http请求,传输数据更加安全
ftp — 文件传输协议,主要用来传输文件
(1)http与https请求协议的区别
        HTTPS是密文传输,HTTP是明文传输
        默认连接的端口号是不同的,HTTPS是443端口,而HTTP是80端口
        HTTPS请求需要CA证书要验证身份,而HTTP则不需要CA证书
        HTTPS=HTTP+SSL+认证+完整性保护

    相同点:
        都是采用同一个基础协议作为HTPP或HTTPS客户端—浏览器
        设立一个连接到Web服务器指定的端口
        服务器接收到请求,会返回一个状态码以及消息
        系统使用统一资源定位器URL模式,因此资源可以被唯一指定

    不同点:
        HTTP的URL是以http://开头。HTTPS的URL是以https://开头
        HTTP是不安全的,HTTPS是安全的,存在明文与加密
        HTTP是80端口,HTTPS是443端口
        在OSI网络模型中,HTTP处于应用层,HTTPS工作在传输层
        HTTP无需加密,HTTPS需要加密
        HTTP无需证书,HTTPS需要安装证书
        总体来说,关键的区别在于https协议多了一层安全套接字

(2)get方法与post方法的区别
    功能不同:
        get是从服务器上获取数据。只能读
        post是向服务器传送数据。能读能写
    过程不同
        get参数通过URL传递
        post参数放在Request body中
    获取值不同
        对于get方式,服务器端用Request.QueryString获取变量的值。在flask里面用的是request.args.get获取变量值
        对于post方式,服务器端用Request.Form获取提交的数据。在flask里面用的就是request.form.get获取提交的数据
    传送数据量不同
        get传送的数据量较小,不能大于2KB。
        post传送的数据量较大,一般被默认为不受限制。现在都在用nginx,大小取决于服务nginx配置,100KB,200KB都是不等的。
    安全性
        get安全性非常低,因为参数直接暴露在URL上,所以不能用来传递敏感信息
        post安全性较高。

3、请求ip:就是指提供接口的系统所部署的服务器地址

4、请求端口:http是默认80,https默认是443

5、接口地址:指系统提供的接口在什么位置

6、接口参数:参数在接口路径后,用”?”来表示路径地址完了,剩下的都是参数,用”&”来区分参数个数。

三、请求、响应包含几部分

http协议报文

1、请求报文(请求行/请求头/请求数据/空行)

(1)请求行
包含请求方法、URI 和http版本

GET/sample.jspHTTP/1.1

(2)请求头(key value形式)
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址

Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate

(3)请求体
post方法中,会把数据以key value形式发送请求

username=admin&password=admin

(4)空行
发送回车符和换行符,通知服务器以下不再有请求头

2、响应报文(状态行、消息报头、响应正文)

(1)状态行

HTTP-Version+Status-Code+Reason-Phrase
HTTP/1.1 200 ok
分别表示http版本 + 状态码 + 状态代码的文本描述

(2)响应头

响应头:包含服务器类型,日期,长度,内容类型等
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112

(3)响应体

{
    "code": 0
    "msg": "OK"
    "data": {
    }
}

四、常见的状态码

1xx: 信息性状态码

    100, 101

2xx: 成功状态码

    200:OK

3xx: 重定向状态码

    301: 永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向;

    302: 临时重定向,显式重定向, Location响应首部的值为新的URL

    304:未修改,比如本地缓存的资源文件和服务器上比较时,发现并没有修改,服务器返回一个304状态码,告诉浏览器,你不用请求该资源,直接使用本地的资源即可。

4xx: 客户端错误状态码

    404: 请求的URL资源并不存在

5xx: 服务器端错误状态码

    500: 服务器内部错误

    502: 前面代理服务器联系不到后端的服务器时出现

    504:这个是代理能联系到后端的服务器,但是后端的服务器在规定的时间内没有给代理服务器响应

五、完整的请求过程

域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) –> 客户端or浏览器对页面进行渲染呈现给用户

六、客户端发起一个接口请求,这个过程各个端做了哪些事

三次挥手
客户端——服务端:客户端发送请求给服务端
服务端——客户端:服务端收到客户端连接
客户端——服务端:客户端发送消息给服务端

四次挥手
主动方——被动方:主动方告诉被动方断开连接
被动方——主动方:被动方收到断开连接请求
被动方——主动方:被动方准备断开连接发送给主动方
主动方——被动方:主动方断开连接

Original: https://blog.csdn.net/zhouzongxin94/article/details/124281455
Author: ZongXin.Zhou
Title: 一、接口相关知识

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/750395/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球