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 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。