HTTP 请求 - 永久移动?

Posted

技术标签:

【中文标题】HTTP 请求 - 永久移动?【英文标题】:HTTP request - Moved permanently? 【发布时间】:2020-04-06 01:35:57 【问题描述】:

我正在尝试将一些关于 HTTP 的理论研究付诸实践。所以我尝试制作一个 HEAD(也尝试过 GET,但更喜欢 HEAD,因为我对实际对象感兴趣),结果如下:

~$ telnet youtube.com 80
Trying 216.58.211.110...
Connected to youtube.com.
Escape character is '^]'.
HEAD /watch?v=GJvGf_ifiKw HTTP/1.1
Host: youtube.com

HTTP/1.1 301 Moved Permanently
Content-Length: 0
Location: https://youtube.com/watch?v=GJvGf_ifiKw
Date: Thu, 12 Dec 2019 15:48:41 GMT
Content-Type: text/html
Server: YouTube Frontend Proxy
X-XSS-Protection: 0

如您所见,我在位于 youtube.com 的主机上请求位于 /watch?v=GJvGf_ifiKw 的对象,这必须与 youtube.com/watch?v=GJvGf_ifiKw 相加,这是该位置的 URL头字段。这里发生了什么?为什么它说它已经搬到了相同的位置?

【问题讨论】:

看起来对 HEAD 的响应是重定向到 https,正如@Kerolos William developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location 所提到的@ 【参考方案1】:

如果您仔细查看输出,您会发现您已被重定向到 HTTPS,因为您的初始请求是端口 80 上的 telnet,这是默认的 HTTP 端口

因为他们正在强制重定向到HTTPS

所以它被重定向到相同的位置,但通过安全的HTTPHTTPS

【讨论】:

以上是关于HTTP 请求 - 永久移动?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP状态码

HTTP状态码

HTTP协议常用标准状态码含义

HTTP状态码介绍

HTTP状态码

2,HTTP请求应答返回码