首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【HTTP】解码网络通信的奥秘:HTTP,IP 地址,端口,DNS及NAT地址转换的协同之舞

  • 25-04-24 14:24
  • 2474
  • 10729
blog.csdn.net

引言

        每文学习一句诗:行一棋不足以见智,弹一弦不足以见悲 ——《淮南子·说林训》

        译文:走一个棋子,不足以现出智慧;弹一根琴弦,不能够使人产生悲哀之情。

        自述:互联网现如今已经成为每个人都离不开的一个通信工具,他渗透到生活的方方面面,在享受它为人们带来便利的同时,我们对他的工作原理也充满了好奇。下面我将介绍了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协议

工作流程

  1. 客户端在浏览器中发起请求:用户在浏览器中输入URL(域名),例如www.baidu.com,此时浏览器会解析生成HTTP请求。
  2. DNS服务器解析域名:输入的域名会被DNS服务器解析得到目标主机的IP地址
  3. 建立TCP连接:根据解析得到的IP地址来访问目标主机的服务器的80端口,与其建立TCP连接。
  4. 发送GET/POST请求报文: 获取目标服务器的数据(GET),向目标服务器提交数据(POST请求)。
  5. 服务器返回相应报文:服务器会根据请求的内容来返回给客户端具体的响应。
  6. 关闭连接:但在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)将域名(如 www.baidu.com)解析为公网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)是将人类可读的域名(如 www.example.com)转换为机器可识别的IP地址(如 93.184.216.34)的分布式数据库系统。

DNS核心功能:

        域名解析:将域名转换为IP地址(正向解析)。

        反向解析:通过IP地址查询域名(反向解析)。

DNS工作流程(以访问 www.baidu.com 为例):

        浏览器缓存:检查本地缓存是否有域名对应的IP。

        系统缓存:查询操作系统(如Windows的hosts文件)。

        根域名服务器:返回顶级域(如 .com)的服务器地址。

        顶级域服务器:返回权威DNS服务器(如 baidu.com的NS记录)。

        结果缓存:将IP地址缓存到本地供后续使用。

DDNS定义

        DDNS(Dynamic DNS)是DNS的扩展,用于在设备IP地址频繁变化时(如家庭宽带动态IP),自动更新域名与IP的绑定关系.例如国内花生壳的DDNS服务。

域名定义

域名是用户访问网站或服务的易记名称,由多级标签组成(如 mail.google.com),通过层级结构(根域→顶级域→二级域→子域)管理。

通俗的来讲:就是将难记的IPv4地址转换为容易记忆的字符,换句话说就是用你的名字来代替你的身份证号一样。

域名的注册:国内如阿里云、腾讯云

根域名:.(通常省略)

一级域名(顶级域名):.com( .com(商业)、.org(非营利组织)、.net(网络服务))

二级域名:example.com

三级域名:cn.example.com

四级域名:blog.cn.example.com

上述如果有误,请大佬指正批评! 如有帮助可以支持下老弟吗

注:本文转载自blog.csdn.net的rqtz的文章"https://blog.csdn.net/m0_75192474/article/details/145670579"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

129
网络与通信
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top