http协议、tcp协议、udp协议

http协议

是应用层协议,是基于tcp/ip通信协议来传输数据
http协议是无连接的:意味着每次连接只处理一个请求。服务器接收到处理完客户的请求,并收到客户的应答之后就会断开连接。节约了传输时间

http协议是无状态的:意味着对事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,必须要重传,这样可能导致每次传输的数据量大,但是如果服务器后续处理不需要前面的信息就会应答的比较快

http协议是媒体独立的:意味着只要客户端和服务端知道如何处理数据的内容,那么任何数据都可以通过http来进行传输

http请求消息

一个http请求代表客户端向服务端发送的数据。

一个完整的http协议请求包括一个请求行,若干个请求头,换行,实体内容

(get请求,内容通过url传输,post请求,内容通过表单传输)

http响应消息

一个http响应代表服务端向客户端响应的数据

一个完整的http协议响应包括一个响应行,若干个请求头,实体内容

一个完整的http协议请求的过程:

对网址进行域名解析,得到相应的ip地址

根据ip地址找到对应的服务器,发起三次握手

建立tcp连接,发起http请求

服务器响应http请求,浏览器得到html代码,解析代码,请求资源,对页面进行渲染

服务器关闭tcp连接

tcp:

位于传输层,是一个面向连接,可靠的传输协议,提供可靠的字节流服务

tcp协议是全双工的,因此每个方向都必须单独关闭

三次握手:

第一次握手:建立连接时,客户端向服务端发送一个SYN请求,此时客户端进入等待状态,等待服务端确认

第二次握手:服务端确认连接,确认是客户端发送的SYN包,自己也发送一个SYN包,即SYN+ACK包,此时服务端进入发送状态

第三次握手:客户端收到服务端的SYN+ACK包,向服务端发送确认包ACK,此包发送完毕,就完成了三次握手

如果握手过程中断了,则tcp会再次以相同的顺序发送相同的数据包

四次挥手:

客户端向服务端发送一个FIN,表示客户端关闭与服务端的连接

服务端收到客户端的FIN,发回确认包ACK

服务端向客户端发送一个FIN,表示服务端关闭与客户端的连接

客户端收到服务端的FIN,发回确认包ACK

tcp协议用滑动窗口机制来进行流量传输

在建立连接时,各端会分配一个缓冲区来存储数据,并将缓冲区的尺寸发送给另一端,接收方发送的消息中包含了自己的剩余缓冲区的尺寸,剩余缓冲区的空间的数量叫做窗口

tcp协议的拥塞控制

防止过多的数据注入到网路中,这样可以使网络中的路由器或链路不至于阻塞。拥塞控制是一个全局性的过程,和流量控制不同,流量控制是点对点的控制。

udp协议

位于传输层,是一种无连接的,不可靠的传输协议,也称透明协议

tcp与udp的区别:

tcp面向连接的传输,通信前要建立连接(三次握手机制)、udp无连接的不传输,通信前不需要建立连接

tcp可靠的传输协议(有序,无差错,不丢失,不重复),udp不可靠的传输协议

tcp面向字节流的传输,能将信息分割成组,并在接收端将其重组,udp面向数据报的传输,没有分组开销

tcp提供拥塞机制和流量控制机制,udp不提供

udp较好的实时性,工作效率比tcp高

udp的段结构比tcp简单,所以网络开销小

参考:https://blog.csdn.net/striveb/article/details/84063712

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值