热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

HTTP协议相关的网络经典五层模型

网络通信相关概念的讲解–网络协议分层(经典五层模型)在我们了解HTTP相关内容之前我们先来了解一下“网络协议分层”相关内容,因为这个是我们了解HTTP相关内容的前提条件;大家有一



网络通信相关概念的讲解 – 网络协议分层(经典五层模型)

在我们了解 HTTP 相关内容之前我们先来了解一下 “网络协议分层” 相关内容, 因为这个是我们了解 HTTP 相关内容的前提条件; 大家有一定深入了解就会明白为什么这样说。 有什么疑问的地方欢迎评论区留言 。

废话不多说, 直接上代码以及图例(为了让大家方便阅读, 都有自己验证过程的一些图例作为分享) 。






一: 网络协议分层

1. 理解网络信息传输过程的时候, 都会使用一个 '经典五层模型'1. 在每一台电脑上, 每一台服务器上, 它都是有这样一个相应的层级关系的; 来维护我们网络传输的过程的 。2. 网络协议的 经典五层模型:1. 应用层2. 传输层3. 网络层4. 数据链路层5. 物理层



二: 低三层各自的主要功能

1. '物理层':1. 物理层的主要作用是: 定义物理设备如何传输数据 。2. 物理层: 简单来说就是 电脑的硬件, 网卡端口, 网线, 网线连接的光缆, 来为我们把数据传输到互联网 。3. 没有物理层我们的软件是无法去使用的 。2. '数据链路层' (也可简单的成为 '链路层', 或者 '网络接口层'):1. 数据链路层 在通信的实体之间建立 数据链路连接: 即 用来处理链接网络的硬件部分 '物理层'2. 需要一个软件服务 帮助我们通过物理的设备 创建一个电路的链接 。3. "注意: 在 《图解HTTP》 一书中: 链路层的定义为: 用来处理链接网络的硬件部分; 硬件上的范畴均在链路层的作用范围之内。", 这里大家不用太在意, 因为这是因为抽象分层时依据不同造成的, 其实都是正确的 (可参考下图)3. '网络层':1. 网络层为数据在节点之间传输, 创建 逻辑链路 。2. 网络层用来处理网络上流动的 '数据包', 数据包是网络传输数据的最小数据单位 。3. 当计算机之间进行通信时, 网络层所起到的作用就是在众多的网络通信路线中选择一条 '传输路线'4. 例如: 我们从自己的电脑去访问百度的服务器, 我们如何去寻找百度这台服务器所在的地址, 它就存在一个逻辑关系; 这个关系是在 网络层 为我们创建的 。

图片示例:

在这里插入图片描述
在这里插入图片描述






三: 传输层

1. '传输层' 的两个协议:1. TCPIP 协议(传输控制协议)2. UDP 协议(用户数据报协议)3. 在更多的情况下我们使用的是 TCPIP 协议, 它是一个更可靠的协议帮我们传输数据 。2. 传输层: 向我们提供可靠的端到端服务 (End-to-End)1. '传输层' 提供处于网络链接中的两台计算机之间的 '数据传输'2. 这个服务的概念: 就是我们建立起了从我们自己的电脑到服务器之间的 连接戳 。3. 它们两端如何去传输数据, 传输数据的方式都是在这一层进行定义的 。4. 传输的数据有可能很小有可能很大, 如果传输的数据比较大, 一次性不能将这个数据传输过去, 那么我们要 分包/分片, 这些分片的数据在传输完成之后, 要进行组装; 组装/传输 的过程, 这些协议的定义都是在 传输层 进行定义的 。4. 传输层: 向高层屏蔽了, 下层数据通信的细节 。1. http 协议是实现在 TCPIP 协议基础上的, 我们 http 协议要传输一个数据只需要非常简单的在浏览器中输入 URL, 它就会发送相关的数据到服务器端, 服务器端能够解析这些数据, 返回给我们的浏览器, 然后把页面显示出来 。2. 我们输入 URL 的过程涉及到了一系列数据的拼装与传输 。3. 这个过程我们作为客户端(浏览器端、APP), 不需要知道它里面是怎么去分片, 怎么去跟服务器创建一个连接的关系, 这些内容传输层已经帮我们封装好了 。5. 传输层会涉及到 http 性能, 过程消耗 。



四: 应用层

1. '应用层' 最主要的就是 http 协议 。2. 应用层 为应用软件提供了很多 '应用服务'1. FTP 文件传输协议 服务。2. DNS 域名系统 服务。4. 构建于 传输层(一般是指TCP) 协议之上 。5. 屏蔽网络传输相关细节 。

图片示例:

在这里插入图片描述
在这里插入图片描述



之前有整理过部分知识点, 现在将整理的相关内容, 验证之后慢慢分享给大家; 这个专题 就是 “HTTP协议原理与实践代码” 的相关专栏; 不积跬步,无以至千里, 戒焦戒躁 。


如果对你有所帮助,喜欢的可以点个关注, 必然回访; 文章还一直持续打磨 。


有什么想要了解的前端知识吗? 可以评论区留言, 会及时跟进分享所提内容 。


整理知识点不易, 每次都是在工作繁忙之余夜深人静之时整理, 无论知识点是大是小, 都会验证后再分享, 以防自己发表的文章给大家造成误导 。如有问题还望不吝赐教,本人会及时更改 (本文原创, 如需转载,请注明出处) 。


HTTP协议原理上篇文章: HTTP协议原理与代码实践之大纲


HTTP协议原理下篇文章: HTTP 协议详解和版本介绍(HTTP发展历史)


推荐阅读
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
author-avatar
手机用户2602920567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有