计算机网络基础详解:从OSI模型到HTTP/HTTPS与Socket编程

计算机网络基础详解:从OSI模型到HTTP/HTTPS与Socket编程

本文适合刚接触计算机网络的小白,带你从零开始理解网络的分层模型、常见协议、浏览器访问网页的全过程,以及简单的网络编程。


OSI七层模型

OSI(Open System Interconnection)参考模型是一个理想化的网络分层模型,将网络通信划分为 七层,每层都承担不同的职责。

七层结构

  1. 物理层(Physical Layer)

    • 任务:传输比特流(0 和 1)。
    • 数据单位:比特(bit)。
    • 示例:双绞线、光纤、无线电波。
    • 打个比方:相当于"马路",只负责运东西,不管东西是什么。
  2. 数据链路层(Data Link Layer)

    • 任务:把比特组装成帧,负责差错检测、点对点传输。
    • 数据单位:帧(Frame)。
    • 示例:以太网、MAC地址。
    • 打个比方:运输的"快递车",每一帧就是一车货。
  3. 网络层(Network Layer)

    • 任务:负责寻址和路由,保证数据能从源头到目的地。
    • 数据单位:包(Packet / IP数据报)。
    • 示例:IP、ICMP、ARP。
    • 打个比方:导航系统,决定车怎么走才能到目的地。
  4. 传输层(Transport Layer)

    • 任务:端到端的通信,保证数据可靠传输或快速传输。
    • 数据单位:报文段(Segment)。
    • 示例:TCP(可靠)、UDP(快速)。
    • 打个比方:送快递时选择"顺丰保价"还是"普通快递"。
  5. 会话层(Session Layer)

    • 任务:建立、管理和终止会话。
    • 示例:登录系统的会话管理。
  6. 表示层(Presentation Layer)

    • 任务:数据翻译、加密、压缩。
    • 示例:JPEG、SSL、TLS。
    • 打个比方:把中文翻译成英文,或者把大文件压缩成小文件。
  7. 应用层(Application Layer)

    • 任务:直接面向用户,提供各种网络服务。
    • 示例:HTTP、FTP、DNS、SMTP。
    • 打个比方:外卖APP,用户通过它下单。

TCP/IP四层模型

实际工程中常用的并不是OSI七层模型,而是 TCP/IP四层模型

  1. 网络接口层(对应物理层 + 数据链路层)
  2. 网络层(IP、ICMP、ARP)
  3. 传输层(TCP、UDP)
  4. 应用层(HTTP、FTP、DNS 等)

浏览器访问网页的全过程

当你在浏览器输入 http://www.example.com 时,发生了什么?

  1. DNS解析

    • 浏览器先检查本地缓存,如果没有,就向本地DNS服务器请求。
    • DNS有两种查询方式:递归查询、迭代查询。
    • 解析得到服务器IP地址。
  2. TCP三次握手

    • 客户端与服务器建立可靠连接。
    • 三次握手的作用:确认双方都具备收发能力。
  3. HTTP请求

    • 浏览器构造HTTP请求报文并发送到服务器。
    • 请求报文包括:请求行、请求头、请求体。
  4. 服务器处理并响应

    • 服务器返回HTTP响应报文,包含状态码(200、404等)和数据。
  5. 浏览器渲染页面

    • 浏览器解析HTML → 下载CSS/JS/图片 → 渲染页面。

HTTP与HTTPS

HTTP特点

  1. 简单快速。
  2. 无连接:每次请求都会断开连接。
  3. 无状态:服务器不记得客户端之前做过什么。

HTTPS特点

  1. 加密传输(TLS/SSL保证安全性)。
  2. 端口不同:HTTP是80,HTTPS是443。
  3. 需要证书:保证网站身份可信。
  4. 缺点:性能开销大,证书费用高。

常见HTTP状态码

  • 200 OK:请求成功。
  • 206 Partial Content:部分请求成功(断点续传)。
  • 301 Moved Permanently:永久重定向。
  • 302 Found:临时重定向。
  • 403 Forbidden:拒绝访问。
  • 404 Not Found:资源不存在。
  • 500 Internal Server Error:服务器内部错误。

Socket编程入门

Socket 是网络编程的核心。以 TCP为例

服务器端流程

  1. 创建套接字:socket()
  2. 绑定IP和端口:bind()
  3. 监听端口:listen()
  4. 等待客户端连接:accept()
  5. 数据收发:send()recv()
  6. 关闭连接:close()

客户端流程

  1. 创建套接字:socket()
  2. 连接服务器:connect()
  3. 数据收发:send()recv()
  4. 关闭连接:close()

总结

  1. OSI七层模型是理论框架,TCP/IP四层模型是实际应用。
  2. 浏览器访问网页的全过程涉及 DNS解析、TCP连接、HTTP请求与响应
  3. HTTP简单高效,但不安全;HTTPS更安全但有性能和成本代价。
  4. Socket是网络编程的基石,理解 socket → bind → listen → accept 就能写最简单的服务端。
相关推荐
崎岖Qiu5 小时前
【计算机网络 | 第十篇】以太网的 MAC 层
网络·笔记·计算机网络·mac地址
JMchen1235 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
m0_737302585 小时前
安卓证书在线生成_免费一键制作apk打包 一键制作工具
网络协议·https·ssl
AEIC学术交流中心5 小时前
【快速EI检索 | ICPS出版】2026年计算机技术与可持续发展国际学术会议(CTSD 2026)
人工智能·计算机网络
君鼎5 小时前
计算机网络第九章:无线网络与移动网络学习总结
网络·计算机网络
chenjingming6665 小时前
浏览器(如chrome)代理抓包时提示Your Connection is not private 问题临时处理
chrome·https
寻星探路12 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
王达舒199412 小时前
HTTP vs HTTPS: 终极解析,保护你的数据究竟有多重要?
网络协议·http·https
朱皮皮呀12 小时前
HTTPS的工作过程
网络协议·http·https
Binary-Jeff12 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https