我熟悉301错误代码,但对http请求是新的,并且正确格式化它们。
在我的程序中,我需要检索我学校的主页,但我得到了一个301 Moved Permanently标题。标题的位置显示页面移动到的位置,但即使是新位置也不适合我,可能是因为我没有正确格式化。
最初我发送此请求:
GET / HTTP/1.1\r\nHost: www.cs.uregina.ca\r\nConnection: close\r\n\r\n
并收到此标题:
Received: HTTP/1.1 301 Moved Permanently
Date: Tue, 04 Nov 2014 05:38:42 GMT
Server: Apache
Location: http://www.cs.uregina.ca/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
我的新HTTP请求应该如何才能获得上述移动的网页?
如果我按照建议尝试移动页面的位置,那么我会得到以下400错误请求响应:
GET / HTTP/1.1\r\nHost: http://www.cs.uregina.ca\r\nConnection: close\r\n\r\n
Received: HTTP/1.1 400 Bad Request
Date: Tue, 04 Nov 2014 05:52:36 GMT
Server: Apache
Content-Length: 334
Connection: close
Content-Type: text/html; charset=iso-8859-1
答案 0 :(得分:1)
最初我发送此请求:
GET / HTTP/1.1\r\nHost: www.cs.uregina.ca\r\nConnection: close\r\n\r\n
并收到此标题:
Received: HTTP/1.1 301 Moved Permanently ... Location: http://www.cs.uregina.ca/ ...
这正是我申请cs.uregina.ca
时得到的结果。您可能已连接到cs.uregina.ca
(或www
以外的某个子域),或者与www.cs.uregina.ca
不对应的IP地址。
如果我按照它的建议尝试移动页面的位置,那么我会得到 以下400个错误请求响应:
GET / HTTP/1.1\r\nHost: http://www.cs.uregina.ca\r\nConnection: close\r\n\r\n Received: HTTP/1.1 400 Bad Request ...
这并不奇怪。您必须从http://
标头中删除Host:
协议。例如:
GET / HTTP/1.1\r\nHost: www.cs.uregina.ca\r\nConnection: close\r\n\r\n
通常,在请求以下URL时:
http://domain.example:80/path/to/resource/?query#fragment ---- -------------- ==------------------------ protocol host | path port你会:
Host:
标头的服务器请求路径(如果同一IP上有多个主机)。请求应该(至少)看起来像这样:
GET /path/to/resource/?query HTTP/1.1 Host: domain.example Connection: close
详情请见:
答案 1 :(得分:0)
如果您只想要主页,请下载nc并输入" nc www.cs.uregina.ca 80" 当nc开始输入以下内容然后点击返回两次:
获取http://www.cs.uregina.ca HTTP / 1.0