接口及相关概念

目录

一、接口

1.1 接口的定义

1.2 应用架构

二、网络传输模型

2.1 OSI七层模型和TCP/IP四层模型

2.2 TCP协议和UDP协议

2.3 TCP的三次握手和四次挥手

2.4 IP地址

三、HTTP协议

3.1 定义

3.2 HTTP请求

3.3 HTTP响应

3.4 get请求和post请求的区别

3.5 HTTP和HTTPS区别

四、鉴权与授权

4.1 cookie

4.2 session

4.3 token

4.4 cookie和session的区别

4.5 session和token的区别


一、接口

1.1 接口的定义

在两个不同的系统或同一系统中两个不同功能,他们直接互相连接的部分称为接口

1.2 应用架构

B/S架构:

游览器--服务器结构

具有分布性强、维护方便、开发简单且共享性强,成本低的特点

但因为请求-响应模式动态刷新页面,故响应速度较慢,且安全性也不如CS架构

C/S架构:

客户端--服务器结构

具有响应速度快、操作样式丰富、安全性高的特点

CS需要安装客户端程序,兼容性差,开发维护成本较高

二、网络传输模型

2.1 OSI七层模型和TCP/IP四层模型

2.2 TCP协议和UDP协议

  • TCP是面向连接的,UDP是面向无连接的:

通信前,TCP通过三次握手建立连接,随后进行数据传输,而UDP直接向对象传递信息

可以通俗的理解TCP为打电话,确认对方在线后再建立连接,而UDP则是发邮件,直接传递信息,不考虑对象不在线或接收信息有误的情况

  • TCP是可靠的,UDP是不可靠的:

TCP使用了接收确认和重传机制,保证了传输内容的准确性

UDP发送数据时,以恒定速度发送数据,不会考虑对方网络问题,是否接收或接收信息有误等问题,适用于实时性高的场景(视频会议),因为部分数据丢失(像素)不会影响视频的内容

  • TCP是面向字节流,UDP是面向报文:
  • TCP只有一对一的传输方式,而UDP可以一对一,一对多,多对多:

TCP只能一对一的原因是在通信前需要与主机进行三次握手连接,因此不能一对多

  • TCP的头部开销大,UDP的头部开销小:

TCP头部有20个字节,UDP的头部只有8个字节

  • TCP会产生粘包问题,UDP会产生丢包问题:

TCP传输多个文件A(10字节)、B(20字节)时,第一次读时只读取5个字节,第二次读取25个字节,粘包问题就是无法分辨消息与消息之间的边界在哪,可通过包头加上包体长度来解决

UDP没有应答和重传机制,容易丢包

2.3 TCP的三次握手和四次挥手

三次握手:

客户端:我要修一条去你家的路

服务器:可以,我也要修一条去你家的路

客户端:可以

开始数据传输

四次挥手:

客户端:我要断开去你家的路

服务器:可以

服务器:我也要断开去你家的路

客户端:可以

断开连接

2.4 IP地址

ip地址就是网络上的主机的逻辑地址,编号

ip v4

ip地址是一个32位的二进制数,分隔成4个8位的二进制数

使用 点分十进制来表示 256.256.256.256

A 大型网络 10.0.0.0-10.255.255.255

B 中型网络 172.16.0.0-172.31.255.255

C 小型网络 192.168.0.0-192.168.255.255

公有地址,私有地址(局域网,私有)

三、HTTP协议

3.1 定义

HTTP是一种超文本传输协议,是客户端和服务器交互数据。分为请求和响应两个部分

3.2 HTTP请求

请求:请求行(请求方式和请求路径),请求头,请求报文

请求方式:get、post、put、delete

请求路径:url

请求头:

Accpet:application/json 指定客户端接收的数据格式

X-Requested-with:异步请求(登录、ajax)

User-Agent:客户端的类型

Content-Type:客户端发送的数据类型

Cookie:服务器返回给客户端并且保存的Cookie信息

请求参数:params

3.3 HTTP响应

响应:响应行(响应码和响应信息),响应头,响应报文

响应码:1xx(继续),2xx(成功),3xx(重定向),4xx(客户端错误),5xx(服务器错误)

3.4 get请求和post请求的区别

  1. get一般是获取数据,post请求一般是提交数据

  2. get对数据长度有限制,post没有限制

  3. get的参数直接暴露在URL后面,请求参数与请求地址以“?”隔开,参数与参数之间以“&”隔开

  4. get传送参数通过URL,post放在request body中

  5. post请求比get请求安全,因为post数字在地址栏上不可见

3.5 HTTP和HTTPS区别

  1. HTTPS协议需要CA证书,免费证书较少,需要一定费用

  2. HTTP是超文本传输协议,信息是明文传输的,HTTPS则是具有安全性的SSL加密传输协议

  3. HTTP和HTTPS使用的连接方式不同,端口也不一致,HTTP是80端口,HTTPS是443端口

  4. HTTP的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

四、鉴权与授权

cookie、session、token都是在游览器上保存用户的登录状态,登录一段时间内可自动获取登录状态,不需要重新登录。

4.1 cookie

客户端访问服务器后,服务器返回cookie信息给客户端,客户端将信息保存在游览器的cookie中,大小约4k,下次访问服务器时,从游览器中获取cookie和请求一起发送给客户端,服务器返回响应数据。

4.2 session

session是一种记录服务器和客户端会话的机制。session是基于cookie实现的,在客户端发送第一次请求时,服务器会根据用户信息创建对应的session,返回请求信息时,服务器将session的唯一标识session_id和请求信息一起返回,客户端将session_id保存在cookie中,下次客户端访问服务器时,从cookie中获取session_id和请求一起发送给服务器,根据session_id查找对应session信息。

4.3 token

客户端发送请求时,服务器验证登录信息是否正确,验证通过后,服务器加密生成token并返回给客户端,客户端接收到token后将其保存在cookie中,下次请求时带上token,服务器对token进行解密,信息正确则返回数据。

4.4 cookie和session的区别

session比cookie安全性高,因为cookie是储存在客户端中的,session存放在服务器中;

存储类型不一致,cookie只支持字符串,session可以存放任意类型数据;

有效时长不一样,cookie可以设置为长时间保存,而session在客户端关闭或者session超时时都会失效;

存储大小不一致,单个cookie文件不能超过4k,而session的大小由服务器决定,一般比cookie大

4.5 session和token的区别

token不一定会存储,session会保存在服务器中;

token可以跨域,session与域名绑定,不能跨域(跨域是指请求中协议、域名、端口其中一项与原请求不同的情况,由于同源策略,会造成跨域);

token是令牌,session是会话;

session会通过存储在服务器验证用户信息,token时通过解密验证用户信息,session是占用空间,token是占用时间;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值