0. 前言

大家好,前面我们已经完成:C语言指针、TCP三次握手四次挥手、进程线程、操作系统死锁四大核心专栏,覆盖了C底层、操作系统、计算机网络核心重难点。

今天我们拿下计算机网络最核心、面试最高频、工程最常用的知识点:HTTP与HTTPS全方位深度解析

可以毫不夸张的说:所有互联网面试,必问HTTP/HTTPS。无论是后端、前端、测试、运维、安全、嵌入式岗位,HTTP协议都是基础必考。绝大多数大三同学的现状是:会用浏览器、会调接口,但完全不懂底层原理。

很多人只会背:HTTP是超文本传输协议、HTTPS是加密的HTTP。但是面试官一追问:HTTP报文结构是什么?GET和POST区别?HTTPS为什么安全?SSL/TLS握手流程?HTTP1.1/2/3区别?HTTPS如何防篡改、防窃听、防冒充?立马翻车。

本文将从零底层、层层递进、全程干货,带你彻底吃透HTTP/HTTPS完整体系,包含协议特性、报文结构、请求响应流程、版本迭代、HTTPS加密原理、对称&非对称加密、数字证书、完整握手过程、高频面试题、易错点总结,搭配高清流程图,全文5000字+,适合期末复习、考研408、校招面试、工程开发一站式吃透。

1. HTTP 协议核心基础认知

1.1 HTTP 是什么?

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是基于TCP/IP应用层的协议,是互联网数据传输的基石。所有网页浏览、接口请求、资源加载、小程序/APP数据交互,底层全部基于HTTP协议实现。

核心定位:用于客户端和服务端之间的超文本数据传输,超文本包含文本、图片、视频、音频、JSON、二进制文件等所有网络资源。

1.2 HTTP 五大核心特性(面试必背)

1. 基于请求-响应模型

永远是客户端主动发起请求,服务端被动响应,服务端不会主动给客户端推送数据(HTTP2、WebSocket除外)。

2. 无连接

HTTP 本身无连接,早期 HTTP1.0 定义为一次请求一次连接,请求完成立即断开TCP连接。HTTP1.1默认支持长连接,但是依然是逻辑无连接,服务端不保存客户端状态。

3. 无状态(重中之重)

HTTP 最大特点:协议本身不记录任何客户端状态。服务端无法区分两次请求是否来自同一个客户端,不知道用户是谁、是否登录、是否重复请求。

正是因为无状态,才诞生了 Cookie、Session、Token 三大会话保持技术,这是面试超级高频考点。

4. 明文传输

HTTP 所有数据均为明文传输,不做任何加密,极易被窃听、篡改、劫持,这也是 HTTPS 必须诞生的根本原因。

5. 灵活可扩展

通过请求头、响应头可以自定义字段、扩展参数、适配各种业务场景,兼容性极强。

2. HTTP 完整报文结构(必考难点)

HTTP 通信的本质,就是客户端发送请求报文、服务端返回响应报文。90%的同学学了几年都分不清报文结构,本节彻底讲透。

2.1 请求报文结构

HTTP 请求报文由四部分组成:请求行、请求头、空行、请求体

1. 请求行:请求方法 + URL + 协议版本,例如:GET /index HTTP/1.1

2. 请求头 Headers:携带客户端信息、浏览器信息、Cookie、数据格式、缓存策略等几十种字段,是参数传递的核心区域。

3. 空行:固定分隔符,区分头部和请求体。

4. 请求体 Body:POST、PUT 等方法携带的请求数据,GET 无请求体。

2.2 响应报文结构

响应报文同样四部分:状态行、响应头、空行、响应体

1. 状态行:协议版本 + 状态码 + 状态描述,例如 HTTP/1.1 200 OK

2. 响应头:服务端返回的服务器信息、数据类型、缓存策略、Cookie 等。

3. 空行:固定分隔符。

4. 响应体:真正返回的业务数据(网页代码、JSON、文件流等)。

2.3 常见状态码分类(面试高频)

1xx 信息性:请求接收,继续处理

2xx 成功:200成功、204无内容、206分片请求成功

3xx 重定向:301永久重定向、302临时重定向、304协商缓存命中

4xx 客户端错误:404资源不存在、403禁止访问、400参数错误、401未授权

5xx 服务端错误:500服务器异常、502网关错误、503服务不可用

3. GET 与 POST 超全区别(面试八股天花板)

这道题是入门必问、每场必面,网上大部分答案都是错的,这里给你工程级、面试级标准答案。

3.1 本质区别

1. 语义不同

GET 用于查询、获取资源,只读操作;POST 用于提交数据、修改资源,写操作。

2. 传参位置不同

GET 参数拼接在 URL 后面,POST 参数放在请求体中。

3. 缓存机制不同

GET 默认会被浏览器缓存,POST 默认不缓存。

4. 长度限制不同

GET 受浏览器URL长度限制,无法传输大数据;POST 无长度限制,适合传文件、大数据。

5. 安全性不同

GET 参数暴露在地址栏,不安全;POST 请求体相对隐蔽,安全性更高。

6. 幂等性不同

GET 是幂等操作(多次请求结果一致);POST 非幂等(多次提交可能产生多条数据)。

3.2 破除经典误区

误区1:GET 没有请求体、POST 才有

纠正:HTTP 标准允许 GET 带请求体,只是浏览器不支持、业务不使用。

误区2:POST 绝对安全

纠正:POST 只是不展示在URL,依然是明文传输,抓包可直接获取,必须 HTTPS 才加密。

4. HTTP 各版本迭代详解(1.0/1.1/2.0/3.0)

面试高频追问:HTTP1.1 优化了什么?HTTP2 新特性?HTTP3 优势?

4.1 HTTP/1.0

短连接模式:一次请求,一次TCP连接,请求完成立即断开。页面多资源时需要频繁创建销毁TCP,三次握手四次挥手开销巨大,性能极差。

4.2 HTTP/1.1(目前最通用)

重大优化,也是目前主流版本:

1. 默认长连接(Keep-Alive):一条TCP连接可多次HTTP请求,不用频繁握手挥手。

2. 支持断点续传、缓存策略优化、HOST字段适配多域名。

3. 管道化请求,但存在致命缺陷:队头阻塞,一个请求阻塞,后续全部阻塞。

4.3 HTTP/2.0 核心特性

1. 二进制帧传输:代替文本协议,解析更快、体积更小。

2. 多路复用:一条连接同时传输多个请求,彻底解决队头阻塞。

3. 头部压缩:大幅减少请求头冗余数据。

4. 服务端推送:服务端可主动推送静态资源。

4.4 HTTP/3.0 核心革新

彻底抛弃 TCP,基于 QUIC 协议(UDP),0-RTT/1-RTT握手,彻底解决TCP队头阻塞,重连更快、弱网体验极佳。

5. HTTPS 超详解(全网最通俗加密原理)

HTTP 明文传输不安全,所以诞生了 HTTPS = HTTP + SSL/TLS 加密传输。

HTTPS 核心目标三件事:防窃听、防篡改、防冒充

5.1 两种加密方式(必须掌握)

对称加密:加密解密同一把密钥,速度极快,适合传输大量数据。问题:密钥如何安全协商?

非对称加密:公钥加密、私钥解密,安全性极高,速度极慢,适合传输少量密钥数据。

5.2 HTTPS 折中方案(核心灵魂)

1. 用非对称加密安全协商出一把随机对称密钥;

2. 后续所有业务数据,全部使用对称加密高速传输;

兼顾「安全」和「速度」,这就是 HTTPS 的底层设计思想。

5.3 数字证书作用(解决中间人攻击)

如果直接用非对称加密,会存在中间人冒充服务端的风险。因此引入 CA 数字证书:

服务端公钥由权威CA机构签名颁发,浏览器内置根证书校验,确保公钥真实有效,杜绝冒充。

5.4 TLS 1.2 四次握手完整流程

1. 客户端Hello:客户端随机数、支持的加密套件、TLS版本

2. 服务端Hello:服务端随机数、选定加密套件、返回数字证书

3. 客户端验证证书 + 预主密钥:客户端校验证书合法性,生成随机预主密钥,用服务端公钥加密发送

4. 双方生成会话密钥:两端通过三个随机数算出统一对称密钥,后续加密通信

6. 高频面试题+易错点总结

6.1 常见误区

1. HTTPS 不是新协议,只是 HTTP 的加密版本;

2. POST 不天然安全,只是不展示在URL;

3. HTTP 无状态可以通过 Cookie/Session 弥补;

4. HTTP2 解决了队头阻塞,HTTP1.1无法彻底解决。

6.2 面试满分问答

Q:HTTPS 和 HTTP 区别?

答:1. HTTP 明文、不安全,HTTPS 加密、防窃听篡改冒充;2. HTTP 端口80,HTTPS 端口443;3. HTTPS 需要CA证书、握手开销更高;4. HTTP无状态无加密,HTTPS基于TLS加密会话。

Q:为什么需要对称+非对称结合?

答:非对称加密安全但速度慢,不适合大数据传输;对称加密速度快适合业务数据。先用非对称安全协商密钥,再用对称高速传输数据,兼顾安全与性能。

7. 全文总结

本篇文章系统完整讲解了 HTTP/HTTPS 全套体系:协议特性、无状态本质、报文结构、状态码、GET/POST区别、四大版本迭代、HTTPS加密原理、TLS握手、中间人攻击、数字证书。

作为计算机网络最核心、工程最常用、面试最高频的知识点,HTTP/HTTPS 是所有计科学生必须吃透的底层基石,也是后续学习网络编程、接口开发、网络安全、分布式架构的前置基础。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐