网络相关总结

53 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


一、网络相关****

1. http与https的区别****

超文本传输协议HTTP,用于在Web浏览器和网站服务器之间传递信息,HTTP协议传输的数据都是未加密的  

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

 

2. RESTFUL****

baijiahao.baidu.com/s?id=167350…

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。

RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

 

(1) RESTFUL风格****

①每一个URI代表1种资源

②客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

通俗点理解就是,URI我描述的是一个资源(注意是没有动词的),这个请求基于HTTP,使用GET、POST、PUT、DELETE4个分别表示增删改查4种操作方式服务端资源进行操作。例如我现在要实现一个含相册,文章系统的接口,那么符合RESTFUL

image.png  

(2) RESTFUL优点****

面向资源,一目了然,具有自解释性  

3. OSI网络结构的七层模型****

  image.png

4. TCP 与UDP****

baijiahao.baidu.com/s?id=169338…

TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的字节流服务,也就是说,在收发数据前,必须和对方建立可靠的连接

UDP (User Datagram Protocol,用户数据报协议),面向非连接的,不可靠的传输层协议,提供面向事务的简单不可靠信息传送服务,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,故也不安全。

(1) TCP三次握手过程****

image.png ①主机A向主机B发送请求建立连接:两个参数, 请求连接标志SYN=1,序号seq=x

②主机B确认应答:四个参数,请求连接标志SYN=1,确认标志ACK=1,序号seq=y,确认号ack=x+1

③主机A确认应答:三个参数,确认标志ACK=1,序号seq=x+1,确认号ack=y+1

特点:参数个数243,确认号是上次收到的序号加1

(2) 三次握手目的****

三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。

第一次握手服务器确认了:对方发送正常,自己接收正常

第二次握手客户端确认了:自己发送、接收正常,对方发送、接收正常;服务器确认了:对方发送正常,自己接收正常

第三次握手客户端确认了:自己发送、接收正常,对方发送、接收正常;服务器确认了:自己发送、接收正常,对方发送、接收正常

(3) TCP四次挥手释 过程****

image.png

①第一次挥手:客户端停止再发送数据,主动关闭 TCP 连接,客户端向服务端发送断开请求

②第二次挥手:服务端响应断开确认,TCP 处于半关闭状态,客户端到服务端的连接释放

③第三次挥手:服务端发送断开请求

④第四次挥手:客户端响应断开确认,服务端收到确认后进入 CLOSED状态,一段时间后,客户端也进入 CLOSED状态

 

特点:双方都在四次挥手后才进入真正的CLOSED,前面都是WAIT状态

 

(4) 为什么 客户端 最后需要等待才关闭****

需要经过时间等待计时器设置的时间 2MSL(一个报文的来回时间) 后才会进入 CLOSED状态

目的是确保服务端收到自己的最后ACK 报文。如果服务端在规定时间内没有收到客户端发来的 ACK 报文的话,服务端会重新发送 FIN 报文给客户端

确保最后的ACK 报文不丢失

(5) TCP四次挥手释 原因****

这是由于 TCP 的半关闭(half-close)特性造成的,TCP 提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

通俗的来说,两次握手就可以释放一端到另一端的 TCP 连接,完全释放连接一共需要四次握手