网络基础入门指南——写给零基础在职编程学习者的通俗教程
写在前面
前两篇我们认识了计算机的"身体"(硬件)和"工作岗位"(服务器与云计算)。现在,我们要回答一个最核心的问题:两台计算机之间,到底是怎么"说话"的?
本文只讲四个核心概念:网络是什么、数据怎么找到路、数据怎么传得稳、程序员日常怎么打交道。不堆砌术语,不炫技,让你用最短的时间建立网络认知框架。
📌 第一部分:网络是什么?——计算机的"电话系统"
1.1 一句话定义
计算机网络:把多台计算机通过线路和设备连接起来,让它们可以互相传递信息的系统。
一句话理解:网络就是计算机之间的电话系统。你的电脑打电话,对方的电脑接听,中间经过交换机和路由器转接。
1.2 网络的核心作用
| 作用 | 生活类比 | 编程场景 |
|---|---|---|
| 传数据 | 打电话、发微信 | 浏览器请求网页、APP调用接口 |
| 共享资源 | 图书馆借书 | 云盘下载文件、访问数据库 |
| 远程控制 | 遥控家电 | SSH登录服务器、远程桌面 |
关键认知:你写的每一行代码,只要涉及"联网",本质上都是在使用这个"电话系统"。
1.3 你家是怎么上网的?——网络设备一览表
| 设备 | 作用 | 比喻 |
|---|---|---|
| 光猫/调制解调器 | 把光信号转成电信号,连接运营商 | 家门口的电话接线盒 |
| 路由器 | 给家里设备分配IP,连接互联网 | 小区门卫,负责对外联络 |
| 交换机 | 让家里多台设备互相通信 | 楼道的分线器 |
| 你的电脑/手机 | 发起请求、接收数据 | 打电话的人 |
数据流向表:
| 步骤 | 数据流向 | 作用 |
|---|---|---|
| 1 | 你的电脑 → 路由器 | 发起请求 |
| 2 | 路由器 → 光猫 | 转发到运营商 |
| 3 | 光猫 → 运营商 → 互联网 | 进入广域网 |
| 4 | 互联网 → 目标服务器 | 到达目的地 |
| 5 | 目标服务器 → 互联网 → 运营商 → 光猫 → 路由器 → 你的电脑 | 返回数据 |
📌 第二部分:数据怎么找到路?——IP地址和DNS
2.1 IP地址:计算机的"电话号码"
IP地址:网络中每台设备的唯一标识,就像电话号码。数据包根据IP地址找到目的地。
| 类型 | 说明 | 例子 | 特点 |
|---|---|---|---|
| 公网IP | 全球唯一,互联网上可直接访问 | 114.114.114.114 | 稀缺、需向运营商申请 |
| 私网IP | 局域网内部使用,不同网络可重复 | 192.168.1.1 | 免费、由路由器自动分配 |
为什么需要两种IP?
| 场景 | 问题 | 解决方式 |
|---|---|---|
| 家里5台设备上网 | 运营商只给1个公网IP | 路由器给5台设备分配私网IP,共享1个公网IP |
| 公司100台电脑 | 不可能每台都有公网IP | 统一分配私网IP,通过公司网关上网 |
关键认知:你买的云服务器有两个IP——私网IP(内网通信,免费)和公网IP(对外服务,按流量计费)。
2.2 端口:区分"打给哪个部门"
端口:IP地址找到大楼,端口找到具体的办公室。一台服务器可以同时提供多种服务,靠端口区分。
| 常见端口 | 服务 | 用途 |
|---|---|---|
| 80 | HTTP | 网页浏览(明文) |
| 443 | HTTPS | 网页浏览(加密) |
| 22 | SSH | 远程登录服务器 |
| 3306 | MySQL | 数据库服务 |
| 6379 | Redis | 缓存服务 |
访问一个服务的完整地址解析表:
| 组成部分 | 示例值 | 含义 |
|---|---|---|
| 协议 | http:// |
使用HTTP协议 |
| 域名 | www.example.com |
通过DNS翻译成IP |
| 端口 | :80 |
访问80端口(HTTP默认可省略) |
| 完整地址 | http://www.example.com:80 |
访问example.com的80端口 |
避坑提示:新手常把数据库端口(3306)暴露到公网,结果被黑客攻击。数据库只开内网访问,这是铁律。
2.3 DNS:域名翻译官
DNS(域名系统):把人类好记的域名(www.baidu.com)翻译成机器认识的IP地址(14.215.177.38)。
为什么需要DNS?
| 对比 | 域名 | IP地址 |
|---|---|---|
| 人类记忆 | www.baidu.com ✅ | 14.215.177.38 ❌ |
| 机器识别 | 需要翻译 | 直接使用 |
DNS解析过程表:
| 步骤 | 动作 | 耗时 | 比喻 |
|---|---|---|---|
| 1 | 浏览器查缓存(最近访问过?) | 0ms | 翻翻自己的通讯录 |
| 2 | 问本地DNS(路由器/运营商) | 10ms | 问小区物业 |
| 3 | 问根服务器(.com归谁管?) | 逐级查询 | 问总机 |
| 4 | 问权威服务器(baidu.com的IP是?) | 最终答案 | 问百度前台 |
| 5 | 返回IP,开始连接 | 总计10~200ms | 拿到号码,开始打电话 |
关键认知:网站打不开,先检查DNS。修改DNS记录后,需要等待TTL过期时间(通常几分钟到几小时)才能全球生效。
📌 第三部分:数据怎么传得稳?——TCP和UDP
3.1 两种传输方式对比表
| 对比项 | TCP | UDP |
|---|---|---|
| 连接方式 | 先建立连接,再传数据 | 直接发,不建立连接 |
| 可靠性 | 不丢、不错、按顺序 | 可能丢、可能乱序 |
| 速度 | 慢(有确认和重传) | 快(只管发) |
| 比喻 | 打电话(确认对方在才说) | 发短信(直接发,不确认) |
什么时候用什么?
| 场景 | 协议 | 原因 |
|---|---|---|
| 浏览网页、调用API | TCP | 数据必须完整,不能缺 |
| 下载文件 | TCP | 文件不能缺一块 |
| 视频直播 | UDP | 偶尔卡一下比等重传更能接受 |
| 网络游戏 | UDP | 延迟0.1秒就可能被击杀 |
| DNS查询 | UDP | 简单快速,一次请求一次响应 |
关键认知:作为程序员,90%的场景用TCP。只有明确需要低延迟、可容忍丢包时,才考虑UDP。
3.2 TCP三次握手:建立连接的"暗号"
三次握手:TCP建立连接时的三个步骤,确保双方都能收发数据。
| 步骤 | 客户端发送 | 服务器回复 | 暗号 | 作用 |
|---|---|---|---|---|
| 1 | “我能给你打电话吗?” | SYN | 客户端请求建立连接 | |
| 2 | “能,你也能接我电话吗?” | SYN+ACK | 服务器同意,并确认客户端能收 | |
| 3 | “能,开始说吧!” | ACK | 客户端确认,连接建立 |
为什么需要三次?
| 握手次数 | 问题 | 结果 |
|---|---|---|
| 两次 | 客户端发了请求,但服务器没收到 | 客户端以为连上了,实际没连上 |
| 三次 | 双方各确认一次 | 确保双方都能收发,连接可靠 |
关键认知:三次握手是TCP可靠性的基础。面试常考,记住"我发、你回、我再回"就行。
📌 第四部分:程序员日常怎么打交道?——HTTP和HTTPS
4.1 HTTP:浏览器和服务器的"对话规则"
HTTP:浏览器请求网页、服务器返回内容的标准格式。
HTTP请求组成表:
| 组成部分 | 内容 | 例子 |
|---|---|---|
| 请求方法 | 要做什么 | GET(获取)、POST(提交)、PUT(更新)、DELETE(删除) |
| 请求地址 | 找哪个资源 | /api/users、/index.html |
| 请求头 | 附加信息 | User-Agent、Cookie、Content-Type |
| 请求体 | 提交的数据 | JSON格式的用户信息 |
服务器返回组成表:
| 组成部分 | 内容 | 例子 |
|---|---|---|
| 状态码 | 结果如何 | 200成功、404找不到、500服务器错误 |
| 响应头 | 附加信息 | Content-Type、Set-Cookie |
| 响应体 | 返回的数据 | HTML页面、JSON数据 |
常见状态码速查表:
| 状态码 | 含义 | 遇到时怎么办 |
|---|---|---|
| 200 | 成功 | 正常,继续 |
| 301/302 | 重定向 | 网址变了,自动跳转 |
| 400 | 请求参数错误 | 检查传的参数格式 |
| 401 | 未登录/Token失效 | 重新登录 |
| 403 | 没权限 | 联系管理员开通权限 |
| 404 | 资源不存在 | 检查URL是否正确 |
| 500 | 服务器内部错误 | 看服务器日志 |
| 502 | 网关错误 | 检查Nginx/代理配置 |
| 503 | 服务不可用 | 服务器过载或维护中 |
关键认知:写代码时,根据状态码判断问题在哪。4xx是客户端问题(你的代码),5xx是服务端问题(服务器代码)。
4.2 HTTPS:加密的"安全通话"
HTTPS:HTTP的安全版本,防止数据在传输中被窃听或篡改。
| 对比项 | HTTP | HTTPS |
|---|---|---|
| 端口 | 80 | 443 |
| 安全性 | 明文,易被窃听 | 加密,防止窃听 |
| 浏览器显示 | “不安全” | 锁标志 |
| 是否需要证书 | 否 | 是(SSL证书) |
为什么必须HTTPS?
| 风险 | HTTP | HTTPS |
|---|---|---|
| 密码被窃取 | ❌ 明文传输,中间人可见 | ✅ 加密传输,只有双方可读 |
| 网页被篡改 | ❌ 中间人可注入广告/恶意代码 | ✅ 加密后无法篡改 |
| 搜索引擎排名 | ❌ 降权 | ✅ 优先推荐 |
关键认知:现在所有网站必须HTTPS。云厂商提供免费SSL证书,一键申请,自动续期,不要花钱买。
📌 第五部分:一张表串联所有知识
5.1 从输入网址到网页显示的完整旅程
| 步骤 | 动作 | 涉及技术 | 耗时 | 比喻 |
|---|---|---|---|---|
| 1 | 浏览器检查缓存 | 本地缓存 | 0ms | 先看看最近有没有 |
| 2 | DNS解析域名 → IP地址 | DNS协议 | 10~200ms | 查通讯录找电话号码 |
| 3 | 建立TCP连接 | TCP三次握手 | ~50ms | 拨号确认对方在 |
| 4 | 发送HTTP请求 | HTTP协议 | 说正事:我要看首页 | |
| 5 | 服务器处理请求 | 服务器程序 | 10~500ms | 对方查资料、写回复 |
| 6 | 服务器返回HTTP响应 | HTTP协议 | 回复:给你页面,成功了 | |
| 7 | 浏览器渲染页面 | HTML/CSS/JS | 取决于复杂度 | 你看到了内容 |
| 8 | 断开TCP连接 | TCP四次挥手 | 说完再见,挂电话 |
总耗时:200ms ~ 2秒
5.2 四层模型速记表
| 层级 | 核心问题 | 关键概念 | 程序员日常 |
|---|---|---|---|
| 应用层 | 传什么内容? | HTTP、HTTPS、DNS、域名、端口 | 写API、调接口、配域名 |
| 传输层 | 怎么传得稳/快? | TCP(稳)、UDP(快) | 选协议、配端口 |
| 网络层 | 传给谁? | IP地址、路由器、子网 | 配IP、配安全组 |
| 网络接口层 | 用什么物理线路? | 网线、WiFi、网卡 | 基本不用管 |
记忆口诀:“传什么、怎么传、传给谁、用什么线”
📌 第六部分:新手避坑指南
6.1 最常见的5个错误
| 错误 | 后果 | 正确做法 |
|---|---|---|
| 数据库端口暴露公网 | 被黑客攻击,数据被勒索 | 仅允许内网IP访问 |
| SSH用默认22端口+密码 | 被暴力破解,服务器被入侵 | 改端口、用密钥登录 |
| 安全组开放0.0.0.0/0 | 任何人都能访问你的服务 | 只开放必要IP和端口 |
| 网站不用HTTPS | 密码被窃取,浏览器标"不安全" | 强制HTTPS,配免费证书 |
| 忽略DNS缓存 | 改了解析但网站仍指向旧IP | 等待TTL过期或手动刷新 |
6.2 必会的3个命令
| 命令 | 作用 | 什么时候用 |
|---|---|---|
ping baidu.com |
测试网络通不通 | 上不了网时 |
curl http://example.com |
测试接口是否正常 | API调不通时 |
netstat -an |
查看端口占用 | "端口被占用"报错时 |
📌 第七部分:总结
核心知识一张表
| 概念 | 一句话理解 | 编程中哪里用到 |
|---|---|---|
| IP地址 | 计算机的电话号码 | 配置服务器、安全组 |
| 端口 | 区分不同服务 | 部署应用、连接数据库 |
| DNS | 域名翻译官 | 买域名、配解析 |
| TCP | 可靠传输,像打电话 | 网页、API、数据库连接 |
| UDP | 快速传输,像发短信 | 视频、游戏、实时通信 |
| HTTP | 浏览器和服务器的对话规则 | 写接口、调接口 |
| HTTPS | 加密的HTTP | 所有线上网站必须配置 |
| 状态码 | 请求结果的"暗号" | 根据码判断问题 |
全文串联表
| 环节 | 角色 | 作用 |
|---|---|---|
| 计算机(硬件) | 执行者 | 运行代码、处理数据 |
| 服务器(24小时工作) | 服务者 | 对外提供持续服务 |
| 网络(互相连接) | 连接者 | 让计算机之间能通信 |
| HTTP/HTTPS | 规则 | 定义浏览器和服务器怎么对话 |
最终认知:网络不神秘,就是计算机之间的电话系统。你写代码时,只需要关心应用层(HTTP/HTTPS、域名、端口),下层的东西云厂商已经帮你搞定了。
祝你网络之路,连接畅通,永不超时! 🌐
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)