Skip to main content

RFC 7617 - 'Basic' HTTP 认证方案

发布日期: 2015年9月
状态: 标准跟踪 (Standards Track)
作者: J. Reschke (greenbytes)
废止: RFC 2617


摘要

本文档定义了 "Basic" 超文本传输协议 (HTTP) 认证方案,该方案以用户 ID/密码对的形式传输凭据,使用 Base64 编码。


本备忘录状态

这是一份互联网标准跟踪文档。

本文档是互联网工程任务组 (IETF) 的产品。它代表了 IETF 社区的共识。它已经过公开审查,并已获得互联网工程指导组 (IESG) 的发布批准。有关互联网标准的更多信息,请参见 RFC 5741 的第 2 节。

有关本文档当前状态、任何勘误表以及如何提供反馈的信息,可从 http://www.rfc-editor.org/info/rfc7617 获取。


目录

附录


核心概念

Basic 认证方案概述

Basic 认证是 HTTP 最基础的认证方式,使用用户名和密码的 Base64 编码传输凭据。

⚠️ 安全警告: Basic 认证以明文方式传输密码(仅使用 Base64 编码,并非加密),除非与 TLS/HTTPS 结合使用,否则不被认为是安全的认证方法。

认证流程

客户端                                服务器
| |
|-------- 1. GET /protected -------->|
| |
|<----- 2. 401 Unauthorized ---------|
| WWW-Authenticate: Basic |
| realm="WallyWorld" |
| |
|-------- 3. GET /protected -------->|
| Authorization: Basic |
| QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
| |
|<------- 4. 200 OK + 资源 ----------|
| |

Base64 编码示例

用户名: Aladdin
密码: open sesame

编码过程:

  1. 拼接: Aladdin:open sesame
  2. Base64 编码: QWxhZGRpbjpvcGVuIHNlc2FtZQ==
  3. 发送: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

RFC 7617 vs RFC 2617 主要变更

  1. 新增 'charset' 参数: 允许服务器指示使用 UTF-8 编码
  2. 国际化支持: 改进对非 ASCII 字符的支持
  3. 规范重写: 与 RFC 7235 保持一致

相关资源