首先了解OSI模型有哪七层?
如下图所示:
分别是物理层,链路层,网络层,传输层,会话层,表示层,应用层
其中:会话层,表示层和应用层距离用户最近,三者也可以并称为应用层
其中最为需要了解的应该是传输层,这层相对而言对于学习技术的朋友来说比较重要,因为在这层中有个协议,分别是 tcp协议 和 udp协议,如何理解这两个协议的区别呢?
比如说我用某个app来联系我某个指定的朋友:张某某,首先我们要确认双方是不是都用这个app,其次有没有指定对象,如果没有,那可能会把通讯录里的朋友全部联系一遍来达到联系某个朋友的目的,这个像udp;指定对象就像是tcp,这是基于我自己个人的理解,如果我理解的不够,也请朋友们多多沟通交流~
那么比较重要‼️的就是tcp的三次握手和四次挥手了
tcp的三次握手:首先有代表的标志位:SYN--> 建立连接。ACK-->确认。ack-->确认号。seq-->报文序号,理解了标志位代表的含义以后,方便进入下一步的理解
第一次握手🤝:client向server发起SYN=1,随即生成报文序号seq=j(seq=j这是任意的哈),将数据包发送给server后,进入连接等待SYN_SENT状态,等待服务器进行确认
第二次握手🤝: server收到以后,看到SYN=1,知道是client发来的建立连接的请求后,设置 ACK=1,ack=序号+1=j+1,随即生成seq=k ,发送给client,进入SYN_RCVD状态
第三次握手🤝:client收到server发送过来的数据,确认ack=j+1,ACK=1,就设置ack=k+1,ACK=1,返回给server,server检查ack=k+1,ACK=1,确认正确后,连接成功,完成三次握手🤝,那么服务端就可以和客户端进行交流了
可以采用画图的方式,理解性的去记效果会更好哈~
四次挥手👋我的理解就相对简单一些:此处有个标记位是FIN
第一次挥手👋:client向server发起FIN,告诉server要断开数据传送
第二次挥手👋:server收到client发来的FIN标志位后,server发送ACK给client,确认号是收到的序号+1
第三次挥手👋:server发送标志位FIN给client,来关闭server到client之间的数据传送
第四次挥手👋:client收到server发来的FIN后,接着发送ACK给server,来断开client到server间的数据传送
udp比较像群发:比如我们在淘宝上,淘宝的消息处经常会有很多商家发来的消息,这种比较像udp
udp和tcp的区别比较多,其中udp是不面向连接的,tcp是面向连接的,并且它能保证数据的有序和有效,但是udp不行,它不能保证,它可能会存在错误;tcp还具有超时重传的功能;tcp能保证数据达到一定限制后就不再接收,但是udp不会,就容易造成堵塞;当然udp也有自己的优点,udp可以进行广播,但是tcp不行❌
除了HTTP协议外,还有HTTPS协议
二者的区别主要在于:
HTTPS需要CA证书
HTTP是传输协议,它是明文传输
HTTPS是具有安全性的SSL/TLS的加密传输
对应的默认端口也是不同的:HTTP --> 80 HTTPS--> 443
🤗还有就是常用的请求方式:主要是GET和POST,除了这两种,还有好多种请求方式哦~
GET:请求页面信息,返回数据
POST:一般是向服务器提交资源,比如登陆,注册信息等…
它两的区别:一个是请求数据,一个是提交数据;GET请求的参数是携带在URL中的,是URL的一部分;POST请求的参数一般在请求体中,不是明文传递,更加安全,而且数据长度没有限制;但是实际上GET和POST是没有本质上的区别,它两都是tcp的连接,只是表现方式不同而已