From 53b3aa7fb20a9dd6c2a8b00dc2cf67c5e456c57c Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 23 Oct 2026 11:18:54 +0800 Subject: [PATCH] Update HTTP.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 301/302 重定向改 GET 的说法按 RFC 9110 更正;补充 SSL 已被 TLS 取代、TLS 1.3 用 ECDHE 协商会话密钥;参考链接由 RFC 2616 改为 RFC 9110。 --- notes/HTTP.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/notes/HTTP.md b/notes/HTTP.md index f8460b17..290aaef9 100644 --- a/notes/HTTP.md +++ b/notes/HTTP.md @@ -130,7 +130,7 @@ HTTP 使用 URL(**U**niform **R**esource **L**ocator,统一资源定位符 - [wikipedia:统一资源标志符](https://zh.wikipedia.org/wiki/统一资源标志符) - [wikipedia: URL](https://en.wikipedia.org/wiki/URL) -- [rfc2616:3.2.2 http URL](https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.2) +- [RFC 9110:4.2.1 http URI Scheme](https://www.rfc-editor.org/rfc/rfc9110#section-4.2.1) - [What is the difference between a URI, a URL and a URN?](https://stackoverflow.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn) ## 二、HTTP 方法 @@ -230,7 +230,7 @@ CONNECT www.example.com:443 HTTP/1.1 通常不会使用 TRACE,并且它容易受到 XST 攻击(Cross-Site Tracing,跨站追踪)。 -- [rfc2616:9 Method Definitions](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html) +- [RFC 9110:9 Methods](https://www.rfc-editor.org/rfc/rfc9110#section-9) ## 三、HTTP 状态码 @@ -264,7 +264,7 @@ CONNECT www.example.com:443 HTTP/1.1 - **303 See Other** :和 302 有着相同的功能,但是 303 明确要求客户端应该采用 GET 方法获取资源。 -- 注:虽然 HTTP 协议规定 301、302 状态下重定向时不允许把 POST 方法改成 GET 方法,但是大多数浏览器都会在 301、302 和 303 状态下的重定向把 POST 方法改成 GET 方法。 +- 注:RFC 9110 出于历史原因允许用户代理在 301、302 重定向时把 POST 方法改成 GET 方法,大多数浏览器也是这么做的。如果不希望方法被改变,应该使用 307 或者 308。 - **304 Not Modified** :如果请求报文首部包含一些条件,例如:If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,如果不满足条件,则服务器会返回 304 状态码。 @@ -716,6 +716,8 @@ HTTP 有以下安全性问题: HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。 +需要注意的是,SSL 已经被 TLS(Transport Layer Security)取代,SSL 3.0 在 2015 年由 RFC 7568 废弃,现在 HTTPS 实际使用的是 TLS,SSL 只是沿用的叫法。 + 通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

@@ -751,6 +753,8 @@ HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer) - 使用非对称密钥加密方式,传输对称密钥加密方式所需要的 Secret Key,从而保证安全性; - 获取到 Secret Key 后,再使用对称密钥加密方式进行通信,从而保证效率。(下图中的 Session Key 就是 Secret Key) +需要注意的是,TLS 1.3 不再用公钥加密传输对称密钥,而是通过 ECDHE 密钥交换协商出会话密钥,非对称密钥只用于签名认证。 +

### 认证