HTTPReplay

Kurz gesagt

Wenn es nicht schnell genug gehen kann, hier eine Schritt für Schritt Anleitung wie man mit HTTPReplay ein STRACE Log Datei anzeigen kann

  1. Herunterladen und Installieren von hier
  2. Eine bereits vorhandene STRACE Log Datei in folgendes Verzeichnis kopieren: C:\Program Files (x86)\HTTPREPLAY\LOGS
  3. Jetzt können wir HTTPReplay wie folgt aufrufen:
    C:\Program Files (x86)\HTTPREPLAY>HTTPREPLAY.CMD logs\STRACE_IEXPLORE_PID_8080_
    8062010_112701.LOG
  4. Ein Browserfenster wird geöffnet und zeigt eine Zusammenfassung des STRACE Logs an
  5. fertig…erstmal

image

Beschreibung

HTTPreplay wird in erster Linie dazu verwendet für einen Strace Log eine Zusammenfassung darzustellen bzw. diesen wieder zu geben. Das Tool arbeitet als lokaler Proxy und trägt sich deshalb auch als solcher in den IE Einstellungen ein:

image

Achtung: Um erfolgreich ein STRACE “Replay” durchführen zu können muss unbedingt die Option “Automatically detect settings” deaktiviert werden. Ansonsten kann es in einer entsprechenden Umgebung passieren, dass nicht HTTPReplay als Proxy ( localhost:81 ) verwendet wird und somit die Daten nicht aus der Log Datei gelesen werden.

Wann sollte man es einsetzen?

Mit der Kombination von STRACE und HTTPReplay kann man die komplette Kommunikation zwischen Client und WebServer aufzeichnen und ggf. auf anderen Systemen wieder abspielen. Der Client selbst muss also keinen direkten Zugang zum WebServer haben was natürlich den Support und die Fehlersuche stark vereinfacht.

Bemerkung: Diese Methode ist nicht unbedingt mit jeder Applikation anwendbar. Deshalb sollte man direkt vor Ort einen entsprechenden Test durchführen. Um sicher zu sein sollte der Cache des Browsers gelöscht werden und das Netzwerkkabel gezogen und / oder die Netzwerkkarte sollte deaktiviert sein. Damit ein Support-Mitarbeiter die einzelnen Schritte bis zum Problem auch nachvollziehen kann müssen diese entsprechen dokumentiert werden. D.h. jeder Klick und jede Eingabe innerhalb der Applikation muss beim Abspielen identisch sein. Diese Informationen sind in der Log Datei nicht enthalten.

Installation

Die aktuelle Version von https://www.microsoft.com/downloads/details.aspx?FamilyID=d25ba362-c17b-4d80-a677-1faff862e629&displaylang=en laden und installieren. Ist HTTPReplay bereits auf einem anderen System installiert kann auch einfach das entsprechende Verzeichnis ( C:\Program Files (x86)\HTTPREPLAY ) auf ein anderes System kopiert werden. Es findet bei der Installation keine Registrierung oder ähnliches statt.

Wie funktioniert’s?

Wie bereits beschrieben kann man mit HTTPREPLAY.CMD %logfilename% eine Zusammenfassung der aufgezeichneten HTTP Requests / Responses anzeigen lassen. Diese beinhaltet die folgenden Informationen:

  • ID und Uhrzeit
  • Method ( GET oder POST Request )
    Klickt man hier auf die eigentliche Methode werden weitere Informationen zu diesem Request dargestellt. Es handelt sich hier um den HTTP Header den man so auch in einem Netzwerktrace sehen würde.
  • Request length
  • Requested URL
    Wenn man auf einen der hier aufgeführten Links klickt schickt der Browser exakt diesen Request an den ( nicht mehr vorhandenen ) WebServer/Proxy. Dieser Request wird von HTTPReplay abgefangen ( HTTPReplay ist ja nun unser Proxy ) und wenn möglich mit Daten aus dem Strace Log beantwortet.Man kann hier auch gezielt Dateien aus einem Log lokal speichern wie HTML, JS oder CSS Dokumente. Dafür einfach mit der rechten Maustaste klicken und “Save target as…” auswählen.
  • Status
    Der Status gibt den HTTP Code des Return HTTP Headers an. Findet man hier einen “304” bedeutet dies, dass beim Erstellen des Strace Logs der Cache nicht gelöscht wurde da der Client angibt eine lokale Kopie der angeforderten Daten zu haben. Die Antwort ist somit nicht im Log enthalten und kann auf einem anderen System nicht wieder gegeben werden.
  • Content-Type
    Eine auch nicht ganz uninteressante Information. Anhand des Content-Type ermittelt der Browser nämlich wie der entsprechende Inhalt dargestellt werden soll. Für HTML Dokumente wäre dies z.B. “text/html”. Auch “text/css” und “text/js” werden natürlich direkt im Browser dargestellt. Es gibt aber auch weitere die z.b. mit “application/….” anfangen. Dies werden dann meistens über ein Plug-In oder gleich außerhalb des Browsers dargesetllt.

Zuletzt findet man noch eine Statistik die ungefähr so aussieht:

------------------------------------------------------------
Request(s) 57
Unique request(s) 57
------------------------------------------------------------
GET 57
------------------------------------------------------------
HTTP 200 53
HTTP 302 1
HTTP 303 1
HTTP 304 2
------------------------------------------------------------
Connection(s) 15
Maximum simultaneous connection(s) 11
Byte(s) sent 85766
Byte(s) received 500067
Average response time (ms) 143
Max response time (ms) 842 (ID 3)
------------------------------------------------------------

Hilfreich hier ist bei evtl. größeren Log Dateien ob Fehlercode wie z.B. “Server error – 500” oder Authentifizierungsfehler wie 401 / 407 vorhanden sind.

Analyse

In Kürze werde ich noch erklären wie man einen Strace Log in Request und Responses zerlgen und ändern kann. Somit ist es möglich Änderungen vorzunehmen und ggf. vorhandene Lösungen zu testen ohne Zugriff auf das Live System haben zu müssen.

Eine ähnliche Methode bietet auch Fiddler, wobei hier eine Verbindung zum Live-System vorhanden sein muss.