HTTP协议完全指南:从请求响应到HTTPS安全机制

发布于:2025-06-04 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、HTTP协议中的基本概念

1.HTTP协议介绍

HTTP协议(超文本传输协议)是互联网上应用最广泛的应用层协议之一,用于在客户端(如浏览器)和服务器之间传输超文本数据(如网页),采用​​请求-响应模型。

(1)协议

协议可以理解为 ​​人与人之间或机器与机器之间为了顺利合作而提前约定的“行动指南”​​。就像玩游戏前要讲好规则一样,没有规则就会乱套。

(2)传输

通过TCP建立连接(默认端口80),传输过程分为四步:
① 建立连接(TCP三次握手) → ② 发送请求 → ③ 返回响应 → ④ 关闭连接

(3)超文本

超文本(Hypertext)是一种​​通过超链接将不同信息节点组织成网状结构的电子文本​​,它打破了传统文本的线性阅读模式,允许用户自由跳转关联内容。

2.统一资源定位符(URL)

URL是资源的唯一标识,格式:协议://主机名:端口/路径?查询参数#片段
示例:http://www.example.com:8080/page?id=1#section
​​协议​​:http 或 https
​​主机名​​:域名或IP地址(如 www.example.com)
​​路径​​:资源在服务器的位置(如 /page)
​​查询参数​​:?后键值对(如 ?id=1)
​​片段​​:#后指定资源子部分(如 #section)

二、HTTP协议中的请求和响应

1.HTTP客户端请求消息

GET /index.html HTTP/1.1       ← 请求行
Host: www.example.com          ← 请求头部
User-Agent: Mozilla/5.0
Accept: text/html
                                ← 空行
(GET无请求正文)               ← 请求正文

在这里插入图片描述

(1)请求行

包含三部分:
​​方法​​(如 GET、POST)
​​URI​​(资源路径,如 /index.html)
​​协议版本​​(如 HTTP/1.1)

(2)请求头部

键值对传递附加信息(如 Host指定域名,User-Agent声明客户端类型)。

(3)空行

分隔头部与正文(CRLF实现)。

(4)请求正文

GET:参数附在URL后(如 /search?q=term)
POST:数据在正文中传输(如表单提交)。

2.HTTP服务端响应消息

HTTP/1.1 200 OK                ← 状态行
Content-Type: text/html        ← 响应头部
Content-Length: 1024
                                ← 空行
<html>...</html>               ← 响应正文

在这里插入图片描述

(1)状态行

​协议版本​​(如 HTTP/1.1)
​​状态码​​(三位数字,指示结果)
​​状态文本​​(如 OK)

状态码
类别 首位数字 描述
1xx(信息类) 1xx 临时响应,需客户端继续操作或等待后续处理。
2xx(成功类) 2xx 请求已被服务器成功接收并处理。
3xx(重定向类) 3xx 需客户端进一步操作(如跳转新地址)。
4xx(客户端错误类) 4xx 请求因客户端问题(如语法错误)无法处理。
5xx(服务器错误类) 5xx 服务器内部错误导致请求失败。

(2)响应头部字段

描述服务器及资源信息(如 Content-Type声明响应体格式)。

(3)空行

(4)响应正文

返回的资源内容(如HTML、JSON等)。

3.HTTP请求方法理解

(1)请求方法

在这里插入图片描述

关键说明

​​幂等性​​:多次相同请求结果一致(如GET、PUT),非幂等方法(如POST)可能导致重复操作。
​​安全性​​:安全方法(如GET)仅读取资源,无副作用;非安全方法(如DELETE)会修改资源状态。
​​版本支持​​:
HTTP/1.0:仅支持GET、POST、HEAD。
HTTP/1.1+:支持全部9种方法。
​​实际应用​​:
浏览器主要使用GET/POST,其他方法需通过API调用(如Fetch)。
POST与PUT区别:POST创建资源(非幂等),PUT更新资源(幂等)。

(2)HTTP与HTTPS

1)HTTP与HTTPS的区别

在这里插入图片描述

2)HTTPS解决的问题

​​1.数据加密​​:
通过对称加密(如AES)传输数据,防止窃听(如WiFi嗅探)。

​​2.身份认证​​:
服务器用CA签发的证书证明身份,避免钓鱼网站。

​​3.完整性校验​​:
使用MAC(消息认证码)检测数据篡改(如中间人攻击)。

​​4.信任链机制​​:
浏览器预置根证书,验证服务器证书合法性。