HTTP:301-Permanently Moved将我重定向到原始地址?

时间:2014-11-12 13:58:18

标签: http

我第一次使用Telnet并尝试简单地连接到某个网页:http://net.cs.uni-bonn.de/de/wg/cs/lehre/ws-201415/sysprog。为此,我在命令行上给出了以下输入:

telnet net.cs.uni-bonn.de 80

Telnet连接成功,我提出以下请求:

GET /de/wg/cs/lehre/ws-201415/sysprog HTTP/1.1
Host: 127.0.0.1

然后,Telnet返回以下内容:

HTTP/1.1 301 Moved Permanently
Date: Wed, 12 Nov 2014 13:37:06 GMT
Server: Apache/2.2.3 (CentOS)
Location: http://net.cs.uni-bonn.de/de/wg/cs/lehre/ws-201415/sysprog
Cache-Control: max-age=360
Expires: Wed, 12 Nov 2014 13:43:06 GMT
Content-Length: 388
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://net.cs.uni-bonn.de/de/wg/cs/lehre/ws-201415/sysprog">here</a>.</p>
<hr>
<address>Apache/2.2.3 (CentOS) Server at <a href="mailto:webmaster-4@cs.uni-bonn.de">127.0.0.1</a> Port 80</address>
</body></html>

知道我为什么会收到301错误?我真的很困惑,因为给出的新重定向地址与我输入的地址完全相同,当我在网络浏览器中打开地址时,地址显然有内容。我可以使用相同的语法打开其他网站,但我必须能够将此网站称为我的作业,因此我想知道为什么会出现此错误以及如何解决这个问题...谢谢!

2 个答案:

答案 0 :(得分:0)

  telnet net.cs.uni-bonn.de 80
     

Telnet连接成功,我提出以下请求:

  GET /de/wg/cs/lehre/ws-201415/sysprog HTTP/1.1
  Host: 127.0.0.1

Telnet首先将域名解析为IP地址,并使用IP地址连接到服务器。许多服务器从同一个IP提供多个域名,这就是您需要提供有意义的Host:标头的原因:

Host: net.cs.uni-bonn.de

如果没有这个,服务器不知道请求的目的地是哪个域名。

在这种特殊情况下,服务器显然知道,但是因为您的HTTP请求格式错误而重定向您。

答案 1 :(得分:0)

由于IPv4地址的限制,多个主机名可以解析为单个IP地址。 HTTP允许每个主机名具有不同的网站,而不必使用不同的端口。您可以在Host标头中指定要请求的主机名。

你说:

Host: 127.0.0.1

它正在重定向您:

http://127.0.0.1/de/wg/cs/lehre/ws-201415/sysprog

http://net.cs.uni-bonn.de/de/wg/cs/lehre/ws-201415/sysprog