文章目录
- 一、HTTP协议中的基本概念
- 1.HTTP协议介绍
- (1)协议
- (2)传输
- (3)超文本
- 2.统一资源定位符(URL)
- 二、HTTP协议中的请求和响应
- 1.HTTP客户端请求消息
- (1)请求行
- (2)请求头部
- (3)空行
- (4)请求正文
- 2.HTTP服务端响应消息
- (1)状态行
- 状态码
- (2)响应头部字段
- (3)空行
- (4)响应正文
- 3.HTTP请求方法理解
- (1)请求方法
- (2)HTTP与HTTPS
- 1)HTTP与HTTPS的区别
- 2)HTTPS解决的问题
一、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.信任链机制:
浏览器预置根证书,验证服务器证书合法性。