我是靠谱客的博主 土豪鸡翅,最近开发中收集的这篇文章主要介绍经典五层模型详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

经典五层模型:

物理层主要作用是定义物理设备如何传输数据,机器的硬件,网卡端口,网线等。

数据链路层在通信的实体间建立数据链路连接,比如最基础的数据传输数据流,可以自己选择二进制或者ASCII码形式等。

网络层为数据在结点之间传输创建逻辑链路,比如输入百度,网络层会为我们找到百度的网址,如何寻找到的过程就是网络层要做的事。

传输层:向用户提供可靠的端到端(end-to-end)服务;传输层向高层屏蔽了下层数据通信的细节(比如一个post请求,如何分片如何发送使服务端很好接收到,这个规则由传输层实现,应用层的HTTP不用关心这些,但是适当理解对HTTP更好地使用是很有帮助的)。

应用层:为应用软件提供了很多服务,帮我们实现了HTTP协议,我们只要按照规则去使用HTTP协议;它构建于TCP协议之上;屏蔽了网络传输相关细节。

http的发展历史:

最早定义的HTTP版本是0.9,它只有一个命令GET,没有HEADER等描述数据的信息,服务器发送完毕,就关闭TCP连接。这里注意TCP连接对应多个HTTP请求,一个HTTP请求一定是在某一个TCP连接里面发送的。

然后是HTTP/1.0,增加了很多命令,增加了status code和header,增加了对多字符集支持、多部分发送、权限、缓存等。

HTTP/1.1,在HTTP/1.0基础上增加了持久连接,原来是发送一个HTTP,就建立一个TCP连接,当发送端接收到以后,就关闭这个TCP连接,这样的成本是比较高的,而现在可以持久连接,不关闭,一直在这个连接中发送,性能有了很大提高;服务端增加了pipline,发送多个HTTP请求,服务端需要处理多个HTTP请求,这里就有一个串行和并行的关系,在HTTP2中有很大改善;增加了host和其他一些命令。

HTTP2中,所有数据以二进制(最小数据单位是帧)传输,HTTP/1.1中大部分数据通过字符串的形式;同一个连接里面发送多个请求不再需要按照顺序来;头信息压缩以及推送等提高效率的功能。

http的三次握手:

正常的请求需要创建一个tcp的链接来作为http请求的通道。tcp的这个创建需要进行三次握手来建立这个链接 

三次握手的时序图: 

我们可以使用抓包工具来展示三次握手。比如wireshark等等。

最后

以上就是土豪鸡翅为你收集整理的经典五层模型详解的全部内容,希望文章能够帮你解决经典五层模型详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部