【HTTP】解码网络通信的奥秘:HTTP,IP地址,端口,DNS及NAT地址转换的协同之舞
- 互联网
- 2025-09-18 18:15:03

引言
每文学习一句诗:行一棋不足以见智,弹一弦不足以见悲 ——《淮南子·说林训》
译文:走一个棋子,不足以现出智慧;弹一根琴弦,不能够使人产生悲哀之情。
自述:互联网现如今已经成为每个人都离不开的一个通信工具,他渗透到生活的方方面面,在享受它为人们带来便利的同时,我们对他的工作原理也充满了好奇。下面我将介绍了HTTP的GET/POST/响应、IP 地址、端口,公内网,DNS及NAT地址转换的相关内容,让你初步了解互联网的通信过程。
如果本文对你有所帮助,那能否支持一下老弟呢,嘻嘻
✨✨个人主页 点击✨✨
目录
编辑
引言
IP地址(IPv4/Ipv6)
定义
分类
A类IP地址
B类IP地址
C类IP地址
特殊IP地址
IPv6地址的基本概念
端口
定义
HTTP协议
定义
工作流程
浏览器开发者工具NetWork使用
GET请求报文
POST请求报文
响应报文
状态码
编辑
公网/内网
编辑
NAT网络地址转换
DNS/DDNS/域名
IP地址(IPv4/Ipv6) 定义
IP地址指的是互联网中所有联网设备的“身份证”,就好比每个人都有自己的身份证号一样。
分类分为IPv4地址和IPv6地址
IPv4:通常以点分十进制的格式来表示,即4个8位的二进制来表示。
例如:192.168.64.24(十进制)
11000000.10101000.01000000.00011000(二进制)
IP地址由网络地址和主机地址组成
A类IP地址网络地址由第一个八位数组组成,且第一个字节以“0”开始,有效网络地址:8-1=7位
主机地址由后三个8位数组共24位(1.0.0.0-126.255.255.255)(0与127留作他用)
B类IP地址网络地址由前两个八位数组组成,且第一个字节以“10”开始,有效网络地址:16-2=14位
主机地址由后两个8位数组共16位(128.0.0.0-191.255.255.255)
C类IP地址网络地址由前三个八位数组组成,且第一个字节以“110”开始,有效网络地址:24-3=21位
主机地址由后一个8位数组共8位(192.0.0.0-223.255.255.255)
特殊IP地址127.xxx.xxx.xxx :环回地址,用于本地测试
0.0.0.0:所有网络,用于指定缺省路由
1.1.1.1:广播地址,用于所有网络节点
IPv6地址的基本概念IPv6(Internet Protocol Version 6)是下一代互联网协议,旨在解决IPv4地址枯竭问题。其核心特点包括:
地址长度:128位(IPv4为32位),提供约 3.4×10383.4×1038 个地址。
简化路由:层次化地址结构,优化网络管理。
增强功能:原生支持安全性(IPsec)、自动配置、多播等。
端口 定义端口(Port):是设备上的一个“逻辑通道”,用于区分同一设备上运行的不同应用程序或服务。例如,Web服务、邮件服务、游戏等可以通过不同端口同时运行。
如果说IP地址是用于找到一台设备的,那么端口就是用于找到该设备中的一个运行的程序。
端口号是一个16位数字(0~65535)
常见的端口号及用途 端口号通信协议用途80HTTP未加密网络传输443HTTPS加密网络传输21FTP文件传输22SSH远程管理服务器25SMTP发送邮件53DNS域名解析3389RDP远程桌面连接客户端:发起请求时,操作系统会随机分配一个临时端口(动态端口)。
服务端:长期监听固定端口(如Web服务器监听80端口),等待请求。
当你在浏览器访问网站时:
你的电脑IP + 随机端口 → 服务器的IP + 80端口
HTTP协议 定义HTTP(HyperText Transfer Protocol): 是一种 应用层协议,用于在客户端(如浏览器)和服务器之间传输超文本(如HTML页面、图片、视频等)。它是万维网(WWW)数据通信的基础。
HTTP的底层是TCP/IP协议
工作流程 客户端在浏览器中发起请求:用户在浏览器中输入URL(域名),例如 .baidu ,此时浏览器会解析生成HTTP请求。DNS服务器解析域名:输入的域名会被DNS服务器解析得到目标主机的IP地址建立TCP连接:根据解析得到的IP地址来访问目标主机的服务器的80端口,与其建立TCP连接。发送GET/POST请求报文: 获取目标服务器的数据(GET),向目标服务器提交数据(POST请求)。服务器返回相应报文:服务器会根据请求的内容来返回给客户端具体的响应。关闭连接:但在HTTP1.1中保持连接复用(Keep-alive)。 浏览器开发者工具NetWork使用以Eage浏览器为例,在浏览器页面右击选择“检查”,点击后,选择“网络”
如图片所示可以看到浏览器在网络请求中的一些数据。
GET请求报文对象:浏览器向web服务器的获取数据的请求
以下时通过浏览器开发者工具得到的请求报文:
请求行
1.GET /serach.html HTTP/1.1 b表示请求方法,请求服务器中资源路径,HTTP协议版本
请求头
2.告诉服务器可以接受的数据类型
3.告诉服务端支持的压缩算法
4.告诉服务端支持的语言
5.和服务器端保持长连接
6.服务器端的IP地址和端口号,没有显示端口号则为80
7.让客户端请求不安全请求,https则是加密的
8.用户代理
空行\r\n
总结:http的get请求报文为
请求行\r\n
请求头\r\n
空行\r\n
注意每条数据后都要有一个\r\n
POST请求报文对象:浏览器向web服务器提交数据的请求
在“负载”中可以看到请求体的内容,这里是JSON数据
HTTP POST请求报文
请求行\r\n
请求头\r\n
空行\r\n
请求体
响应报文对象:服务器处理浏览器发送的请求而做出的响应。
这里面展示的是我自己写的简单服务器的响应头
响应行
HTTP/1.1 200 OK 协议版本 状态码 状态
响应头
Server:Rqtzws/1.0 服务器名称
空行\r\n
响应体
HTTP 响应报文
响应行\r\n
响应头\r\n
空行\r\n
响应体\r\n
状态码 状态码说明200请求成功307重定向400错误请求404请求资源不存在500服务器出现错误 公网/内网公网
公网是全球范围内的互联网,由无数网络设备(如路由器、服务器)通过TCP/IP协议互联而成,允许任何接入网络的设备进行公开通信。例如,访问百度、使用微信或浏览国外网站都是通过公网实现的。
特点:
具有全球唯一的公网IP地址所有用户都可以访问内网
内网是私有网络,仅在特定组织或家庭内部使用,设备通过路由器、交换机等连接。例如,家庭Wi-Fi、公司办公网络都是内网。
特点:
局域网IP地址(192.168.68.23),不同局域网中可重复使用。内网设备不会直接暴露在公网内,外网用户无法根据内网地址访问该设备。相比公网速度更快(如1Gbps)那么内网中的设备是如何访问到公网的资源的呢?如访问百度,CSDN
这就是下面要提到的NAT网络地址转换技术
为什么会有公网和内网之分呢?
因为IPV4地址资源短缺,没有办法给每一台联网设备提供公网IP。
NAT网络地址转换家庭网络(路由器)通过光纤/DSL接入(单层NAT)
以下将详细介绍内网设备是如何通过路由器来访问外网的。
首先我们从运营商中购买宽带,会得到一个公网IP。再将路由器的网线连接到宽带中,配置路由器管理页面,使得内网设备连接。此时连接的内网设备可以得到一个路由器分配的局域网IP地址此时设备如果想要访问百度设备的默认网关指向路由器的内网IP(如 192.168.1.1),所有非本地的数据包都会发送给路由器处理。
设备通过路由器或运营商提供的DNS服务器(如 8.8.8.8)将域名(如 .baidu )解析为公网IP地址。
DNS解析后发现目标的IP地址不在本地局域网中,将数据包发送到默认网关(路由器),路由器启用NAT网络地址转换
NAT网络地址转换:将设备的内网IP地址替换为路由器的公网IP,并分配给一个随机的端口,并记录NAT映射表(包含内网设备的IP和端口,路由器公网IP和端口,目标服务器(百度)IP和端口)
通过网络访问百度服务器
服务器数据传回内网设备:百度服务器会根据NAT映射表来将相应的数据发送给表中的有公网ip的路由器。
路由器响应:路由器根据NAT映射表中的内网设备ip和端口,将数据传回内网设备。
移动网络(手机)依赖基站和蜂窝核心(多层NAT)
手机在开启移动网络后,会搜索附近基站信号(如5G频段n78),建立无线连接(RRC连接)。手机向核心网发起PDN连接请求运营商网关会给手机分配一个内网ip地址,若支持IPv6,手机可呢会直接得到ipv6地址手机在浏览器中访问百度时,生成http数据包,他将通过附近的基站传输到核心网(5GC)核心网再将数据发送至运营商的网关CGNAT(运营商NAT,多层)会将手机的内网IP转换为公网ip(该公网IP属于 移动网络运营商(如中国移动、中国联通、中国电信),是运营商从国际组织(如APNIC)申请获得的IP地址资源池中的一部分,是有限的),并记录内网IP,公网IP,目标IP组成的映射表 手机(内网IP:10.100.100.100) ↓ 运营商第一层NAT(映射到运营商内网IP:100.64.1.1) ↓ 运营商第二层NAT(映射到公网IP:120.230.45.67) ↓ 公网互联网 最后再将数据包通过运营商网络发送给百度服务器。传回手机同上。 DNS/DDNS/域名DNS定义
DNS(Domain Name System)是将人类可读的域名(如 .example )转换为机器可识别的IP地址(如 93.184.216.34)的分布式数据库系统。
DNS核心功能:
域名解析:将域名转换为IP地址(正向解析)。
反向解析:通过IP地址查询域名(反向解析)。
DNS工作流程(以访问 .baidu 为例):
浏览器缓存:检查本地缓存是否有域名对应的IP。
系统缓存:查询操作系统(如Windows的hosts文件)。
根域名服务器:返回顶级域(如 )的服务器地址。
顶级域服务器:返回权威DNS服务器(如 baidu 的NS记录)。
结果缓存:将IP地址缓存到本地供后续使用。
DDNS定义
DDNS(Dynamic DNS)是DNS的扩展,用于在设备IP地址频繁变化时(如家庭宽带动态IP),自动更新域名与IP的绑定关系.例如国内花生壳的DDNS服务。
域名定义
域名是用户访问网站或服务的易记名称,由多级标签组成(如 mail.google ),通过层级结构(根域→顶级域→二级域→子域)管理。
通俗的来讲:就是将难记的IPv4地址转换为容易记忆的字符,换句话说就是用你的名字来代替你的身份证号一样。
域名的注册:国内如阿里云、腾讯云
根域名:.(通常省略)
一级域名(顶级域名): ( (商业)、.org(非营利组织)、.net(网络服务))
二级域名:example
三级域名:cn.example
四级域名:blog .example
上述如果有误,请大佬指正批评! 如有帮助可以支持下老弟吗
【HTTP】解码网络通信的奥秘:HTTP,IP地址,端口,DNS及NAT地址转换的协同之舞由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【HTTP】解码网络通信的奥秘:HTTP,IP地址,端口,DNS及NAT地址转换的协同之舞”
上一篇
怎么下载安装yarn
下一篇
机器学习的三个基本要素