我正在尝试将有关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,这是该位置的网址标头字段。这里发生了什么?为什么说它已经移到了相同的位置?
答案 0 :(得分:3)
如果仔细查看输出,您会发现您已重定向到HTTPS
,因为第一步是在80端口(即HTTP
端口)上的telnet
任何系统管理员都会这样做,如果请求来自HTTPS
,则会强制重定向到HTTP