如何测试 HTTP 301 重定向?
如何轻松测试 HTTP 返回代码,例如 301 重定向?
例如,如果我想“看看发生了什么”,我可以使用 telnet 执行以下操作:
... $ telnet nytimes.com 80
Trying 199.239.136.200...
Connected to nytimes.com.
Escape character is '^]'.
GET / HTTP/1.0
(enter)
(enter)
HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Mon, 14 Jun 2010 12:18:04 GMT
Content-type: text/html
Set-cookie: RMID=007af83f42dd4c161dfcce7d; expires=Tuesday, 14-Jun-2011 12:18:04 GMT; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-control: no-cache
Pragma: no-cache
Connection: close
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
...
这是访问相当多信息的简单方法。
但现在我想测试一下 301 重定向是否确实是 301 重定向。
我怎样才能这样做呢?
基本上,我想知道如何获得 301,而不是得到 HTTP/1.1 200 OK?
我知道我可以在浏览器中输入 URL 名称并“查看”我已重定向,但我想知道可以使用哪些工具来真正“查看”301 重定向。
顺便说一句,我确实使用 telnet 进行了测试,但是当我输入 www.example.org 时,我将其重定向到 example.org(没有 www),我只能看到“200 OK”,我不知道去看看 301。
How can one easily test HTTP return codes, like, say, a 301 redirect?
For example, if I want to "see what's going on", I can use telnet to do something like this:
... $ telnet nytimes.com 80
Trying 199.239.136.200...
Connected to nytimes.com.
Escape character is '^]'.
GET / HTTP/1.0
(enter)
(enter)
HTTP/1.1 200 OK
Server: Sun-ONE-Web-Server/6.1
Date: Mon, 14 Jun 2010 12:18:04 GMT
Content-type: text/html
Set-cookie: RMID=007af83f42dd4c161dfcce7d; expires=Tuesday, 14-Jun-2011 12:18:04 GMT; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Set-cookie: adxcs=-; path=/; domain=.nytimes.com
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-control: no-cache
Pragma: no-cache
Connection: close
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
...
Which is an easy way to access quite some infos.
But now I want to test that a 301 redirect is indeed a 301 redirect.
How can I do so?
Basically, instead of getting a HTTP/1.1 200 OK I'd like to know how I can get the 301?
I know that I can enter the name of the URL in a browser and "see" that I'm redirected, but I'd like to know what tool(s) can be used to actually really "see" the 301 redirect.
Btw, I did test with a telnet, but when I enter www.example.org, which I redirected to example.org (without the www), all I can see is an "200 OK", I don't get to see the 301.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我认为更方便的解决方案是使用 Curl。
只需运行:
它将返回这样的 HTTP 标头
A far more convenient solution in my opinion is to use Curl.
Simply run:
And it will return the HTTP headers like this
好的,回答问题两分钟后我找到了答案...
执行以下操作不起作用:
但以下操作正常:
我的错误是将 www.example.org 传递给 telnet(而不是 example.org),然后不指定任何“主机:”。
现在它可以工作了,我得到这个:
注意:在 Windows Vista/7 上,默认情况下不安装 Telnet 客户端。要安装它,请按照此处的说明进行操作:安装 Telnet 客户端 - Microsoft TechNet
OK, two minutes after answering the question I found the answer...
Doing the following doesn't work:
But the following works fine:
My error was to pass www.example.org to telnet (instead of example.org) and then not specifying any "Host: ".
Now it works, I get this:
Note: On Windows Vista/7, Telnet Client is not installed by default. To install it, follow the directions here: Install Telnet Client - Microsoft TechNet
测试它的一种方法是在目标网站上指定 301 重定向,并使用
curl -L
选项通知您 301 重定向。例如:
你得到:
One way to test it is to specify a 301 redirect on the target website and use
curl -L
option to inform you of 301 redirects.For example:
You get:
Firefox 插件 HTTP Live headers 对此非常有用。
The Firefox addon HTTP Live headers is quite useful for that.
在(telnet 响应的)标题中,您将在第一行看到它:
谢谢
In the headers (of the telnet response) you'll see it in the first line:
Thanks
我使用 Firebug 的 网络面板为此。
I use Firebug's Net panel for this.