0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP网络通讯过程

马哥Linux运维 来源:马哥Linux运维 2025-01-20 09:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 网络模型概览

OSI(Open System Interconnection)先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的 OSI 模型。

OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

29697206-d4b6-11ef-9310-92fbcf53809c.png

2. HTTP 网络通讯过程

示例:简单的网络拓扑模型

299f77ac-d4b6-11ef-9310-92fbcf53809c.png

29c05378-d4b6-11ef-9310-92fbcf53809c.png

详解:当键入网址到网页显示的通讯过程

客户端(发送方组包)

1)HTTP

浏览器解析 URL(协议、域名、资源路径)

生成HTTP 请求报文

2)DNS(真实地址查询)

向 DNS 服务器查询服务器域名对应的IP 地址

域名中越靠右的位置表示其层级越高

3)协议栈(指南帮手)

获取 IP 后,将之后的 HTTP 传输工作交给操作系统内核中的协议栈处理

TCP/UDP:负责收发数据

IP:负责将网络包送达给对方

4)TCP(可靠传输)

报文头部包含端口号、目标端口号、序号、确认号等

TCP传输数据之前,要先三次握手建立连接(三次握手的目的是保证双方都有发送和接收的能力

TCP 报文生成:TCP 头部 + HTTP 报文

5)IP(远程定位)

将数据封装称网络包发送给通信对象

IP 报文生成:IP 头部 + TCP 头部 + HTTP 报文

6)MAC(两点传输)

还需要加上 MAC 头部(发送方和接收方的 MAC 地址等信息),MAC 头部是以太网的头部

MAC 作用:MAC 地址用来唯一标识设备,再通过 ARP 协议找到下一站路由器的 MAC 地址,实现两点之间的传输

至此,网络包报文(MAC 头部 + IP 头部 + TCP 头部 + HTTP 报文)如下图所示

29ea0c18-d4b6-11ef-9310-92fbcf53809c.png

7)网卡(出口)

真正的数据发送过程:将数字信息(IP 网络包)转换为电信号,才能在网线上传输

控制网卡需要靠网卡驱动程序

网卡本身具有 MAC 地址,且会核对数据包的接收方 MAC 地址与自身 MAC 地址是否相同,不是则丢弃

8)交换机(送别)

交换机的设计:将网络包原样转发到目的地

交换机工作在 MAC 层,也称为二层(数据链路层)网络设备

交换机接收到达网线接口的电信号,并转换为数字信息

二层交换机本身具有一个 MAC 地址(标识自身硬件设备),但其各端口不具有 MAC 地址(三层交换机则每个端口都有 MAC 地址)

交换机根据交换机根据MAC 地址表查找 MAC 地址,然后将信号发送到相应的网线端口。交换机的 MAC 地址表包含两个信息:

设备的 MAC 地址

该设备连接在交换机的哪个端口上

2a39ebd4-d4b6-11ef-9310-92fbcf53809c.png

9)路由器(出境)

路由器基本原理:

与交换机类似,通过查表判断包的(下一个路由器或目标设备)转发目标

路由器基于 IP 设计,俗称三层(网络层)网络设备,其各端口具有 MAC 地址和 IP 地址(和计算机网卡一样);而交换机基于以太网设计,俗称二层(数据链路层)网络设备,其端口不具有 MAC 地址(也有三层交换机,具有部分的路由器功能)

MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址

包接收操作:将网线接口的电信号转成数字信号,并核对 MAC 地址

完成包接收操作之后,路由器就会去掉包开头的 MAC 头部

接下来会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作

包发送操作:将网络包的数字信号转成电信号并通过端口发送出去,经过层层转发之后,到达最终目标设备

首先是查询路由表判断转发目标

过 ARP 协议根据对方的 IP 地址查询 MAC 地址,并将查询结果作为接收方 MAC 地址

2a69d254-d4b6-11ef-9310-92fbcf53809c.png

以太网(传输)

在网络包(跨网段)传输过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。

(对于同网段的二层转发,MAC 地址则不变。)

服务器端(接收方解包)

1)路由器(入境)

2)交换机(境内)

3)服务器(终点)

服务器层层扒开数据包头部,最后通过 TCP 头部的端口号确认是 HTTP 进程想要的这个包

HTTP 进程将资源封装在HTTP 响应报文中,也依次穿上 TCP、IP、MAC 头部,从网卡出去,交由交换机转发到路由器,经过层层转发,最后到达客户端

客户端扒剩 HTTP 响应报文后,交给浏览器去渲染页面并显示资源

最后客户端要离开时,向服务器发起TCP 四次挥手,至此双方连接断开

示例:服务器和客户端相互扒皮

2ab36e64-d4b6-11ef-9310-92fbcf53809c.png

链接:https://www.cnblogs.com/juno3550/p/14385367.html


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    531

    浏览量

    34834
  • OSI
    OSI
    +关注

    关注

    0

    文章

    86

    浏览量

    15800
  • 网络通讯
    +关注

    关注

    0

    文章

    78

    浏览量

    12593

原文标题:2. HTTP 网络通讯过程

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网络通讯的结构及地址

    1. 网络地址结构 Socket通过结构体描述网络地址,最常用的是IPv4地址结构sockaddr_in(定义在): struct sockaddr_in
    发表于 11-17 07:59

    变频器CANBUS网络通讯异常深度解析

    变频器作为工业自动化领域的核心设备,其通信稳定性直接影响生产系统的可靠性。CANBUS网络凭借实时性强、抗干扰能力突出等优势,成为变频器组网的主流方案。然而在实际应用中,通信异常问题频发,轻则导致
    的头像 发表于 09-17 22:18 713次阅读
    变频器CANBUS<b class='flag-5'>网络通讯</b>异常深度解析

    不同品牌的PLC之间通讯的各种实现方式,以及网络结构图

    级别的数据交互,同样的数据量在同等质量的网络通讯时,数据刷新速度同总线;相关参数在一个页面内配置,方便直观;在调试过程中有详细的状态反馈信息,以及完善的数据监控和通讯错误处理机制。
    的头像 发表于 08-19 09:57 671次阅读
    不同品牌的PLC之间<b class='flag-5'>通讯</b>的各种实现方式,以及<b class='flag-5'>网络</b>结构图

    虹科车辆网络通讯测试主板:双系统适配 × 工业级稳定 × 零门槛部署

    本文探讨了车载网络测试面临的挑战,包括多协议并发时的数据丢包、繁杂线束带来的集成难题和逐年攀升的设备维护成本。虹科全新推出的HKIC1-MBM2100 车辆网络通讯测试主板凭借其硬核配置和易用设计,成功解决了这些问题。
    的头像 发表于 07-15 11:15 446次阅读
    虹科车辆<b class='flag-5'>网络通讯</b>测试主板:双系统适配 × 工业级稳定 × 零门槛部署

    C#上位机与运动控制卡网络通讯的周期上报

    使用C#上位机编程实现运动控制卡网络通讯的周期上报功能
    的头像 发表于 06-26 13:59 515次阅读
    C#上位机与运动控制卡<b class='flag-5'>网络通讯</b>的周期上报

    EKI系列交换机:冗余电源设计与高可靠网络通讯解析

    ****在工业自动化与智能制造场景中,网络设备的稳定运行直接关乎生产连续性。研华推出的EKI系列工业交换机,凭借其独特的冗余电源设计与智能告警功能,成为保障工业网络可靠性的核心设备。本文苏州研讯
    的头像 发表于 05-12 13:58 797次阅读
    EKI系列交换机:冗余电源设计与高可靠<b class='flag-5'>网络通讯</b>解析

    基于RK3576开发板的http/https通讯

    主要区别在于HTTPS需要CA证书、使用加密传输,且端口号通常为443,而HTTP为80。HTTP/HTTPS通讯中,客户端发送请求报文,服务器返回响应报文,请求方法常见有GET和POST。URL(统一
    的头像 发表于 05-10 11:24 1670次阅读
    基于RK3576开发板的<b class='flag-5'>http</b>/https<b class='flag-5'>通讯</b>

    关于三菱PLC的网络通讯时的‘生存确认’参数

    最近项目用到三菱PLC的网络通讯,终于理解了PLC的以太网通讯时,有个网络端口生存确认,原来是一个非常重要的参数。 生成确认决定了网络参数中模块的初始设置中的对象目标生存期的设置是否生
    发表于 03-31 11:26

    stm32cubeide生成的lwip网络通讯任务跑起来都很正常,为什么一旦加独立看门狗之后就会卡死呢?

    stm32cubeide生成的lwip网络通讯任务跑起来都很正常,为什么一旦加独立看门狗之后就会卡死?
    发表于 03-10 07:29

    屏蔽双绞线和屏蔽网络通讯线的区别有哪些

    屏蔽双绞线和屏蔽网络通讯线在多个方面存在区别,以下是对这两者的详细比较: 一、定义与结构 屏蔽双绞线: 定义:屏蔽双绞线是在普通双绞线的基础上增加了一层或多层屏蔽层,以减少电磁干扰(EMI)和射频
    的头像 发表于 02-22 11:04 1549次阅读

    APM8系列网络电力仪表

    详细情况可与我联系咨询:缪志澄 18860991782 安科瑞电气APM系列网络电力仪表是按IEC标准设计,与国际先进技术同步的网络电力仪表。具有全电量测量电能统计,电能质量分析及网络通讯等功能
    的头像 发表于 02-05 15:39 917次阅读
    APM8系列<b class='flag-5'>网络</b>电力仪表

    如何调试 HTTP 请求和响应

    调试HTTP请求和响应是Web开发和网络编程中的一个重要技能。以下是一些步骤和工具,可以帮助你调试HTTP请求和响应: 1. 使用浏览器开发者工具 大多数现代浏览器都内置了开发者工具,这些工具可以
    的头像 发表于 12-30 09:28 1801次阅读

    HTTP 1.1 和 HTTP 2.0 的区别

    HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,用于在客户端和服务器之间传输数据。随着技术的发展,HTTP协议也在不断地更新和优化。HTTP/1.1是1999年发布的,而HTTP
    的头像 发表于 12-30 09:25 1781次阅读

    运动控制卡网络通讯的心跳检测之C#上位机编程

    使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能
    的头像 发表于 12-24 10:54 1958次阅读
    运动控制卡<b class='flag-5'>网络通讯</b>的心跳检测之C#上位机编程

    安科瑞APM830电能质量型网络电表 支持Profibus通讯 带CPA认证

    安科瑞Profibus通讯电能质量型网络电表具有全电量测量、电能统计、电能质量分析、录波功能、事件记录功能(包括电压暂升暂降中断、冲击电流等记录)及网络通讯等功能,主要用于电网供电质量的综合监控。
    的头像 发表于 12-19 10:02 711次阅读
    安科瑞APM830电能质量型<b class='flag-5'>网络</b>电表 支持Profibus<b class='flag-5'>通讯</b> 带CPA认证