HTTP Clientanfrage

Besucher Award

HTTP Clientanfrage

HTTP Clientanfrage


HTTP Clientanfrage analysieren

Die HTTP Clientanfrage "HEAD /test.html HTTP/1.0" setzt sich aus folgenden Komponenten zusammen: Den Befehlen (meistens GET oder POST), der angeforderten Datei und der Angabe des benutzten Protokolls.

  • GET Dokumentforderung

  • HEAD Dateiheader Anforderung

  • POST Formulardaten versenden

  • PUT Datei versenden

Mittels der Daten der HTTP Clientanfrage können Rückschlüsse auf Dateiabrufe (Hits) und Seitenabrufe (Page Impressions) gewonnen werden. In Kombination mit der IP-Adresse und dem Datum kann die Einstiegsseite und Ausstiegseite des Besuchers bestimmt werden. Sollten nach der Analyse eine TOP Ausstiegseite auftauchen ist es ratsam sich diese genauer anzusehen und gegebenenfalls zu überarbeiten.


Um eine HTTP Clientanfrage manuell durchzuführen in der Kommandozeile das Programm telnet ausführen:

telnet www.suchmaschinen-optimierung-eintrag.de 80

(80 HTTP Port)

HEAD /test.html HTTP/1.0

(Danach 2 mal Return)

 

Zurückgelieferter HTTP Header:

HTTP/1.1 200 OK

(Server Statusmeldung)

Date: Sun, 02 Apr 2006 19:23:03 GMT

(Server Zeitstempel)

Server: Apache/2.0.55

(Server Name/Version)

Last-Modified: Sun, 02 Apr 2006 13:45:23 GMT

(Zeitpunkt der letzten Dateiaktualisierung)

ETag: "11f6c5-1f8-e2ba02c0"

(Hash-Wert)

Accept-Ranges: bytes

(Speichereinheit)

Content-Length: 504

(Dateigröße)

Connection: close

 

Content-Type: text/html; charset=ISO-8859-1

 

 

Ein Problem was hierbei Auftreten kann ist das dynamisch erstellte Webseiten nicht über Last-Modified, ETag und Content-Lenght im Header verfügen, da der Webserver den Inhalt der Webseite, auf Grund der dynamischen Erstellung, nicht kennt. Einige Suchmaschinen bevorzugen ältere Dateien und somit muss man, wenn man den Aufwand nicht scheut und sich des Risikos bewust ist, an dieser Stelle etwas nachhelfen.


Header einer dynamisch erstellten Seite mit URL Rewriting .htm anstelle von .php:

telnet www.suchmaschinen-optimierung-eintrag.de 80

HEAD /index.htm HTTP/1.0

 

Zurückgelieferter HTTP Header:

HTTP/1.1 200 OK

Date: Mon, 03 Apr 2006 08:28:15 GMT

Server: Apache/2.0.55

X-Powered-By: PHP/4.4.2-1

Connection: close

Content-Type: text/html; charset=ISO-8859-1

 

Auch wenn man die URL mittels Mod_Rewrite (Wird in einem späteren Artikel behandelt) umschreibt, so dass Dateiname und gegebenenfalls URL nicht als dynamische Ergebnisse zu erkennen sind, wird bei der HTTP Clientanfrage ein für dynamisch generierte Dateien typischer Header vom Webserver versendet.


Header mittels PHP modifizieren

Die unter der URL http://www.suchmaschinen-optimierung-eintrag.de/header.htm zu erreichende Datei ist mit dynamischen Content gefüllt (Aktuelles DATUM und UHRZEIT) besitzt aber die von einigen Suchmaschinen benutzten Headerinformationen einer normalen .htm Seite. Dieses Verfahren verstößt bei "Missbrauch" gegen die Richtlinien der Suchmaschinen.

 

Am Anfang vor <html> eingefügter "vereinfachter" PHP Code:
<?

$file = fopen ("header.php", "r");

// Liest die Datei ein

$hash = md5($file);

// Generiert eine eindeutige ID (Hash-Wert)

header("HTTP/1.1 200 OK");

// Setzt die Server Statusmeldung ab

header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime("header.php")) . " GMT", true, 200);

// Gibt die letzte Änderung der Datei wieder

header("ETag: \"{$hash}\"");

// Füllt das ETag mit dem Hash-Wert

header("Accept-Ranges: bytes");

// Angabe der Speichereinheit

header('Content-Length: '.filesize("header.php"));

// Größe der Datei

header('Content-Type: text/html; charset=ISO-8859-1');

// Datei Type / Zeichensatz

?>

 

Header der mittels PHP manipulierten Datei:

HTTP/1.1 200 OK

(Die mittels PHP gesetzt Statusmeldung)

Date: Mon, 03 Apr 2006 07:50:33 GMT

 

Server: Apache/2.0.55

 

X-Powered-By: PHP/4.4.2-1

 

Last-Modified: Mon, 03 Apr 2006 07:49:28 GMT

(Das vom PHP ausgelesene Datum)

ETag: "9102391cccfc584339e256adc4682818"

(Der von PHP generierte Hash-Wert)

Accept-Ranges: bytes

 

Content-Length: 333

(Die von PHP ermittelte Dateigröße)

Connection: close

 

Content-Type: text/html; charset=ISO-8859-1