inside http: webdebugging mit fiddler

Post on 29-Nov-2014

281 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides meines Vortrags am 05.12.2013 bei der .NET Usergroup Göttingen http://dotnetgoettingen.de/?p=584

TRANSCRIPT

Inside HTTP:Webdebugging mit Fiddler

Max Nowack - 05.12.2013 .Net Usergroup Göttingen

Agenda

Was ist Fiddler?

Was ist HTTP?

Wie funktioniert HTTP?

Wie funktioniert Fiddler?

Features im Detail

Was ist Fiddler?

Wird entwickelt von Eric Lawrence seit 2003

2012 von Telerik übernommen

HTTP-Proxy

Kostenlos!

HTTP

Was ist HTTP?

Protokoll für Kommunikation im WWW

Jeder Browser „spricht“ HTTP

Versionsgeschichte 1991: 0.9

1996: 1.0

1999: 1.1

2012: Erster Entwurf für 2.0 (SPDY & HTTP Speed+Mobility)

Wie funktioniert HTTP?

HTTP-Client(Browser,

etc.)HTTP-Server

Response

Request

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Methode

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

URL Pfad

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Version

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Request Header

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Version

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Status1xx

Information2xx Erfolgreiche Operation

3xx Umleitung

4xx Client Fehler

5xx Server Fehler

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Response Header

Wie funktioniert HTTP?

GET /index.php HTTP/1.1Host: dotnetgoettingen.deConnection: keep-alive

HTTP/1.1 200 OKDate: Thu, 5 Dec 2013 18:17:54 GMTServer: Apache/2.2.25 (Unix)X-Powered-By: PHP/5.3.27X-Pingback: http://dotnetgoettingen.de/xmlrpc.phpKeep-Alive: timeout=3, max=100Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8

<!DOCTYPE html>...

Inhalt

Wie funktioniert Fiddler?

HTTP-Client(Browser,

etc.)

HTTP-Proxy (Fiddler)

HTTP-Server

RequestInspection/Modification

ResponseInspection/Modification

Wie funktioniert Fiddler?

Features von Fiddler

Inspectors

Filter

Composer

Comparing

Breakpoints

Autoresponder

Extensions! FiddlerScript

Fiddler API für .NET

Inspectors

Anschauen von HTTP Requests/Responses

Verschiedene Anzeige Möglichkeiten (XML, JSON, Bilder, WebView, etc.)

Meistens der Einstiegspunkt für Analysen

Filter

Filtern der HTTP Requests und Responses Hosts

Client Process

Headers

Status code

Content Type

Breakpoints unterstützt

Composer

Manuelles Absenden von HTTP-Requests

Bearbeiten und erneutes Absenden von vorherigen Sessions

Comparing

Vergleichen von verschiedenen Requests/Responses

Zeitleiste

WinDiff, etc.

Breakpoints

Request bearbeiten, bevor es an Server gesendet wird

Response bearbeiten, bevor es an Client gesendet wird

Automatik mit Autoresponder oder FiddlerScript/API

Schnelle Reaktion notwendig, da sonst Timeout auftritt

Autoresponder

Automatisches Senden von Responses bei Requests auf bestimmte URL‘s

Reguläre Ausdrücke

Redirects

Delays

Extensions!

FiddlerScript Basiert auf Jscript.NET

Bearbeitung zur Laufzeit

Fiddler API Fiddler Extensions (UI Anpassungen möglich)

Nutzen der Fiddler-Funktionalität in eigenen Programmen (FiddlerCore)

Vielen Dank!

Max Nowack

Mail: max@unsou.de

Web: http://max.unsou.de

Twitter: @maxnowack

Mehr Informationen:

http://fiddler2.com/

http://fiddlerspdsettings.codeplex.com/

top related