2010-06-14 8 views
7

Wie kann man einfach HTTP-Returncodes testen, wie zum Beispiel eine 301-Weiterleitung?Wie testet man eine HTTP 301-Weiterleitung?

Zum Beispiel, wenn ich will "sehen, was los ist", kann ich telnet verwenden, so etwas zu tun:

... $ telnet nytimes.com 80

Trying 199.239.136.200... 
Connected to nytimes.com. 
Escape character is '^]'. 

GET/HTTP/1,0

(enter)

012.

(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>  
... 

, die eine einfache Art und Weise ist ganz ein paar Infos zugreifen.

Aber jetzt möchte ich testen, dass eine 301 Redirect tatsächlich eine 301 Redirect ist.

Wie kann ich das tun?

Grundsätzlich, anstatt eine HTTP/1.1 200 OK zu bekommen, würde ich gerne wissen, wie ich die 301 bekommen kann?

Ich weiß, dass ich den Namen der URL in einem Browser eingeben und "sehen" kann, dass ich umgeleitet werde, aber ich würde gerne wissen, welche Werkzeuge verwendet werden können, um wirklich zu sehen 301 Umleitung.

Btw, ich habe mit einem Telnet getestet, aber wenn ich www.example.org betrete, das ich auf example.org umgeleitet habe (ohne das www), sehe ich nur ein "200 OK", ich weiß nicht nicht zu sehen, die 301.

Antwort

2

OK, zwei Minuten nach der Beantwortung der Frage ich die Antwort gefunden ...

die folgenden Aktionen nicht funktioniert:

telnet www.example.org 80 
GET/HTTP/1.0 
{enter} 
{enter} 

Aber die folgende funktioniert:

telnet example.org 80 
GET/HTTP/1.0 
Host: www.example.org 
{enter} 
{enter} 

Mein Fehler war www.example.org zu telnet (anstelle von example.org) und dann keine Angabe "Host:".

Jetzt funktioniert es, bekomme ich diese:

Connected to xxx.xx 
Escape character is '^]'. 
GET/HTTP/1.0 
Host: www.example.org 

HTTP/1.1 301 Moved Permanently 
Server: Apache-Coyote/1.1 
Location: http://example.org/ 
Connection: close 
Date: Mon, 14 Jun 2010 13:02:22 GMT 
Connection: close 

Connection closed by foreign host. 

Hinweis: Unter Windows Vista/7, Telnet-Client nicht standardmäßig installiert ist.Um es zu installieren, folgen Sie den Anweisungen hier: Install Telnet Client - Microsoft TechNet

+0

Dies funktioniert nicht auf Windows 7 – Krunal

1

Das Firefox-Addon HTTP Live headers ist sehr nützlich dafür.

+0

ah interessant, danke für den Link ... Aber ich war auf der Suche nach etwas mehr "low level", wie * Telnet * :) Lustig fand ich einen Weg, meine 301 zwei Minuten nach dem Posten der Frage zu bekommen :) – NoozNooz42

1

In dem Header (der Telnet-Antwort) Sie es in der ersten Zeile sehen werden:

HTTP/1.1 301 Moved Permanently 
Via: XXXXXXXXXXX 
Connection: close 
Proxy-Connection: close 
Content-Length: 0 
Date: Mon, 14 Jun 2010 13:03:14 GMT 
Location: /xxxxxxxxx 
Server: XXXXXXX 
Cache-Control: private 

Dank

+0

eigentlich nicht in der Art, wie ich in der Frage zeigte, was der ganze Punkt war meiner Frage an :) Sehen Sie sich meine Antwort an, um zu sehen, warum es nicht so funktionierte, wie ich Telnet benutzte und was getan werden muss, damit es funktioniert :) – NoozNooz42

+0

Sie hatten das 301 nicht in der ersten Zeile, weil es nicht war 't eins. Wenn die "www" -Version das tut, aber nicht die "non-www" -Version, ist es nicht das Problem von telnet oder meine Antwort. Es liegt daran, dass eine der beiden URLs dies tut und die andere nicht. Dies sind 2 verschiedene URLs. –

15

Eine weitaus bequemere Lösung meiner Meinung nach ist Locke zu verwenden.

einfach laufen:

$ curl -I http://example.com 

Und es wird die HTTP-Header wie dieser

HTTP/1.1 302 Moved Temporarily 
Server: nginx/1.1.19 
Date: Sun, 21 Jul 2013 10:41:47 GMT 
Content-Type: text/html 
Content-Length: 161 
Connection: keep-alive 
Location: https://other.example.com/ 
1

Ein Weg zurück zum testen zu spezifizieren ist ein 301 auf der Ziel-Website umleiten und verwenden curl -L Option Informiere dich über 301 Weiterleitungen.

-L, --location 

(HTTP) If the server reports that the requested page has moved to a different 
location (indicated with a Location: header and a 3XX response code), this option 
will make curl redo the request on the new place. 

Zum Beispiel:

:~$ curl -IL mail.com 

Sie erhalten:

HTTP/1.1 301 Moved Permanently 
Date: Tue, 07 Feb 2017 13:17:12 GMT 
Server: Apache 
Location: https://www.mail.com/ 
Vary: Accept-Encoding 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 

HTTP/1.1 302 Found 
Date: Tue, 07 Feb 2017 13:17:13 GMT 
Server: Apache 
Vary: X-Forwarded-Proto,Host 
Set-Cookie: cookieKID=kid%40autoref%40mail.com; Domain=.mail.com; Expires=Thu, 09-Mar-2017 13:17:13 GMT; Path=/ 
Set-Cookie: cookiePartner=kid%40autoref%40mail.com; Domain=.mail.com; Expires=Thu, 09-Mar-2017 13:17:13 GMT; Path=/ 
Cache-Control: no-cache, no-store, must-revalidate 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Location: https://www.mail.com/int/ 
Content-Language: en-US 
Connection: close 

HTTP/1.1 200 OK 
Date: Tue, 07 Feb 2017 13:17:13 GMT 
Server: Apache 
Vary: X-Forwarded-Proto,Host,Accept-Encoding 
Set-Cookie: cookieKID=kid%40autoref%40mail.com; Domain=.mail.com; Expires=Thu, 09-Mar-2017 13:17:13 GMT; Path=/ 
Set-Cookie: cookiePartner=kid%40autoref%40mail.com; Domain=.mail.com; Expires=Thu, 09-Mar-2017 13:17:13 GMT; Path=/ 
Cache-Control: no-cache, no-store, must-revalidate 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Set-Cookie: JSESSIONID=964DA3BD186E264928A8C188E3BB919D; Path=/mailcom-webapp/; HttpOnly 
Content-Language: en-INT 
Content-Length: 74356 
Connection: close 
Content-Type: text/html;charset=UTF-8