301 永久移动 - 重定向页面的新链接在哪里?

aud*_*i02 6 redirect

我正在构建一个程序来读取网页。我尝试阅读

    http://en.wikipedia.org/wiki/France
Run Code Online (Sandbox Code Playgroud)

但后来我得到了回复:

    HTTP/1.0 301 Moved Permanently.
Run Code Online (Sandbox Code Playgroud)

我无法理解的是,新链接(在位置字段中)与我给出的相同......那么重定向页面的新链接在哪里?

这是回应:

    HTTP/1.0 301 Moved Permanently
    Date: Wed, 16 Jan 2013 22:26:03 GMT
    Server: Apache
    X-Content-Type-Options: nosniff
    Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
    Vary: Accept-Encoding,X-Forwarded-Proto,Cookie
    Last-Modified: Wed, 16 Jan 2013 22:26:03 GMT
    Location: http://en.wikipedia.org/wiki/France
    Content-Length: 0
    Content-Type: text/html; charset=utf-8
    X-Cache: MISS from sq64.wikimedia.org
    X-Cache-Lookup: HIT from sq64.wikimedia.org:3128
    Age: 45
    X-Cache: HIT from amssq32.esams.wikimedia.org
    X-Cache-Lookup: HIT from amssq32.esams.wikimedia.org:3128
    X-Cache: MISS from amssq35.esams.wikimedia.org
    X-Cache-Lookup: MISS from amssq35.esams.wikimedia.org:80
    Connection: close
Run Code Online (Sandbox Code Playgroud)

谢谢


根据Eric的回答,我再次测试了我的程序。

我发送了以下命令:

    GET http://www.wikipedia.org/wiki/france HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

回应是:

    HTTP/1.0 301 Moved Permanently
    Date: Thu, 17 Jan 2013 22:36:04 GMT
    Server: Apache
    Location: http://en.wikipedia.org/wiki/france
    Content-Length: 243
    Content-Type: text/html; charset=iso-8859-1
    X-Cache: MISS from sq64.wikimedia.org
    X-Cache-Lookup: MISS from sq64.wikimedia.org:3128
    X-Cache: MISS from amssq45.esams.wikimedia.org
    X-Cache-Lookup: MISS from amssq45.esams.wikimedia.org:3128
    X-Cache: MISS from knsq26.knams.wikimedia.org
    X-Cache-Lookup: MISS from knsq26.knams.wikimedia.org:80
    Connection: close

    <!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://en.wikipedia.org/wiki/france">here</a>.</p>
    </body></html>
Run Code Online (Sandbox Code Playgroud)

这当然是预料之中的。现在我发送:

    GET http://en.wikipedia.org/wiki/france HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

得到的回应是:

    HTTP/1.0 301 Moved Permanently
    Date: Wed, 16 Jan 2013 22:26:03 GMT
    Server: Apache
    X-Content-Type-Options: nosniff
    Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
    Vary: Accept-Encoding,X-Forwarded-Proto,Cookie
    Last-Modified: Wed, 16 Jan 2013 22:26:03 GMT
    Location: http://en.wikipedia.org/wiki/France
    Content-Length: 0
    Content-Type: text/html; charset=utf-8
    X-Cache: MISS from sq64.wikimedia.org
    X-Cache-Lookup: HIT from sq64.wikimedia.org:3128
    Age: 45
    X-Cache: HIT from amssq32.esams.wikimedia.org
    X-Cache-Lookup: HIT from amssq32.esams.wikimedia.org:3128
    X-Cache: MISS from amssq35.esams.wikimedia.org
    X-Cache-Lookup: MISS from amssq35.esams.wikimedia.org:80
    Connection: close
Run Code Online (Sandbox Code Playgroud)

我尝试使用 wget:

    wget.exe http://en.wikipedia.org/wiki/france   
Run Code Online (Sandbox Code Playgroud)

没关系!页面已加载:

    wget.exe http://en.wikipedia.org/wiki/france
    --2013-01-18 00:43:06--  http://en.wikipedia.org/wiki/france
    Resolving en.wikipedia.org... 91.198.174.225
    Connecting to en.wikipedia.org|91.198.174.225|:80... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: http://en.wikipedia.org/wiki/France [following]
    --2013-01-18 00:43:06--  http://en.wikipedia.org/wiki/France
    Reusing existing connection to en.wikipedia.org:80.
    HTTP request sent, awaiting response... 200 OK
    Length: 854896 (835K) [text/html]
    Saving to: `France'

    100%[======================================>] 854,896      573K/s   in 1.5s

    2013-01-18 00:43:08 (573 KB/s) - `France' saved [854896/854896]
Run Code Online (Sandbox Code Playgroud)

那么我的程序有什么问题吗?

aud*_*i02 0

问题是我的程序在内部将给定地址更改为小写。这导致链接中的“france”为小写“f”,而不是 301 响应所需的大写“F”。

我以为 URL 不区分大小写,但现在我知道了:

“虽然域名不区分大小写,但 URL 的其余部分可能会区分大小写”(http://www.wisegeek.com/are-urls-case-sensitive.htm)