网络七层结构简介
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
tcp连接的三次握手和四次挥手的通俗理解
- 三次握手,以此确认两个方向上的数据传输通道是否正常
- 客户端向服务端发送建立连接的信号,客户端进入
SYN_SENT
的状态 - 服务端收到消息后,向客户端发送一个随机产生确认消息,服务端进入
SYN_RCVD
状态 - 客户端收到确认消息后,向服务端发送本身合法的数据;服务端检测验证数据后链接建立成功
- 客户端向服务端发送建立连接的信号,客户端进入
- 四次挥手,断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开
- 客户端向服务端发送关闭消息,用户关闭客户端到服务端的数据传送,客户端处于
FIN_WAIT_1
状态 - 服务端收到消息后向客户端发送等待通知的信号,检查是否发送完全部数据,服务端处于
close_wait
状态 - 服务端将全部数据发送完成后向客户端发送关闭信号,服务端进入
lsat_ack
状态 - 客户端收到消息后向服务端发送确认信号并关闭
- 客户端向服务端发送关闭消息,用户关闭客户端到服务端的数据传送,客户端处于
为什么要进行三次握手
为了防止服务器端开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
为什么建立连接是三次握手,而关闭连接却是四次挥手呢
因为关闭连接时,当服务端收到对方的关闭通知时,仅仅表示客户端不再发送数据了但是还能接收数据,客户端也未必将全部数据都发送给对方了;所以服务端要先判断数据是否全部发送完毕再关闭
HTTP协议
简介
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
常用方法
- GET
- POST
- PUT
- DELETE
- OPTIONS
GET和POST区别
- GET常用来请求资源,POST用来修改资源
- POST的安全性要比GET的安全性高
- POST可以比GET提交更多的数据;HTTP协议本身并没有对URL长度做限制,大部分的限制都是浏览器或服务器对他的限制