SlideShare a Scribd company logo
1 of 32
Ido Flatow
Senior Architect
Microsoft MVP
SELA Group
Debugging the Web with Fiddler
@idoFLATOW
http://bit.ly/flatow-blog
This presentation:
http://sdrv.ms/13mgEP9
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
MEET FIDDLER…
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
MEET FIDDLER…
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
MEET FIDDLER…
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
Application
Network
APIs
Proxy Website
WHAT IS FIDDLER?
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
HOW FIDDLER WORKS…
Internet
Explorer
WinINET
Office
CryptoAPI WinHTTP
Fiddler
Firefox
Upstream
Proxy
Web Site
Firewall
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
FIDDLER FACTS
 A proxy server
 An HTTP/HTTPS Sniffer
 An HTTP Debugger
 Written in .NET 3.5 / 4
 A free utility (for now, cross your fingers)
 An extensible application
 A must tool for web developers
 Unfortunately,
it doesn’t make coffee!
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
SCENARIO: INSPECTING TRAFFIC
 Web sessions
 Inspectors
 Filters
 QuickExec
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
THE SESSIONS LIST
9
Sequence and
color coding
Caching information
Origin process
Manual
commentsResponse size
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
FIDDLER TO THE RESCUE
 Browsers (Static sites, ASP.NET, J2EE, PHP)
 Desktop applications that use HTTP
 Web services
 Windows Phone Emulator
 Any device that supports
a proxy server ( )
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
THE RIGHT INSPECTOR FOR THE JOB
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
FILTER BY…
By process type
By specific process
By host
By process name/PID/svchost
By URL
By status code
By MIME or size
QuickExec
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
FIDDLER AND HTTPS
 HTTPS is secured - between two machines
 Fiddler acts as a “machine-in-the-middle”
 Generates certificates for web sites on-the-fly
 Fiddler supports client certificates for
authentication
 Supports excluding
problematic HTTPS sites
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
IF YOU SEE THIS, DON’T PANIC
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
SCENARIO: PERFORMANCE TUNING
 Timeline
 Statistics
 More inspectors
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
REMINDER
UNDERSTANDING THE CONNECTION
Application
Network
APIs
Proxy Website
Second connection
From Fiddler to the server
First connection
From client to Fiddler
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
VISUALIZE THE TRAFFIC WITH TIMELINE
Start End
Bar color = MIME
Red = new connection
Green = reused connection
Disk = cached response
Bar = begin receive
Stripes = buffered by Fiddler
Prefer stream over buffer
Use buffer when editing responses
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
STATISTICS ARE IMPORTANT
 Single page statistics give info on performance
 Client processing
 Server processing
 Network latency
 Server time:
ServerBeginResponse – ServerGotRequest
 Upload time:
ServerGotRequest – ClientDoneRequest
 Download time:
ServerDoneResponse – ServerBeginResponse
 Watch out for misleading connection reuse
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
DRAWING CONCLUSIONS
 Reduce number of requests
 Reduce traffic roundtrips
 Reduce the size of requests and responses
 Applying compression where needed
 Identify non-cached responses
 Use Fiddler to improve performance, not to
measure it!
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
SCENARIO: DEBUGGING
 Replay
 Composer
 Breakpoints
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
PLAY IT AGAIN, SAM
 Why run the client scenario again, just to
resend the request?
 Simply click “Replay”
 Reissue a single request
 Reissue a set of requests
 Reissue unconditionally (no cache headers)
 Reissue multiple times
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
CHANGING REQUESTS WITH COMPOSER
 Create any request from scratch
 Use previous requests with drag-n-drop
 Don’t bother calculating content length
www.bobthebuilder.com
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
DEBUGGING LOCALHOST
 In some cases, proxies are bypassed when
using localhost (127.0.0.1) addresses
 What to do?
 Use the machine’s name
 Use fictitious DNS names
 ipv4.fiddler or ipv6.fiddler
(converted to 127.0.0.1 / [::1])
 localhost. or localhost.fiddler
(converted to localhost)
 Force the use of a proxy with netsh
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
SCENARIO: TESTING
 Save / Export
 Auto responder
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
WHAT DID YOU TYPE IN WRONG
TO GET IT TO CRASH?
 Save traffic to file
 Save sessions as .SAZ
(Zip) archive
 .SAZ stores content
and session info
 Other archiving
options:
 HTTP Archive (HAR)
 Visual Studio Web Test
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
AUTO-RESPONDER
AN IN-MEMORY WEBSITE
 If URI matches… then respond with…
 Respond with file/redirection/breakpoint/drop
 Not only that, you can also:
 Import sessions as responses
 Edit stored responses
 Use original latency time (updatable)
 Export and import rules
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
SCENARIO: CUSTOMERS
 Reverse proxy
 Fiddler Cap
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
CAN’T FIDDLE THE CLIENT?
FIDDLE THE SERVER
Local Network
Web ServerFiddler
8180
http://bit.ly/fiddler-reverse-proxy
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
MINI FIDDLER, CUSTOMER-ORIENTED
 Six simple steps
 Install and run
 Click 1. Start Capture
 Browse the web site
 [Take some screenshots]
 Click 2. Stop Capture
 Click 3. Save Capture
 Email me the .SAZ file
29
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
EXTENDING FIDDLER
 Customize rules script
 Create custom inspectors
 Create requests and responses auto-modifiers
 Create new exporter/importer
 Extend QuickExec with new commands
 Add menus and tabs
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
FIDDLER IS MORE THAN A SNIFFER
 Monitors traffic, yes, but also…
 Controls traffic
 Modifies traffic
 Generates traffic
 Easy to use
 Extensible
www.devconnections.com
DEBUGGING THE WEB WITH FIDDLER
http://bit.ly/flatowblog
@IdoFlatow
idof@sela.co.il
My Info
Fiddler Website
http://www.fiddler2.com
http://groups.google.com/group/httpfiddler
Fiddler Forum
http://www.telerik.com/automated-testing-tools/blog/eric-lawrence.aspx
http://blogs.msdn.com/b/fiddler (older blog)
Fiddler Blog
http://sdrv.ms/13mgEP9
This Presentation
RESOURCES

More Related Content

What's hot

Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressionsHans Emmel
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmetertest test
 
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBase
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBaseHBaseCon 2015: Taming GC Pauses for Large Java Heap in HBase
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBaseHBaseCon
 
Web Programming and Internet Technologies
Web Programming and Internet TechnologiesWeb Programming and Internet Technologies
Web Programming and Internet TechnologiesHenry Osborne
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeterMikael Kundert
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs JmeterAtul Pant
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingTharinda Liyanage
 
Recon with Nmap
Recon with Nmap Recon with Nmap
Recon with Nmap OWASP Delhi
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter Shub
 
Taking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in MemoryTaking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in MemoryJoe Desimone
 
Performance testing with Apache JMeter
Performance testing with Apache JMeterPerformance testing with Apache JMeter
Performance testing with Apache JMeterRedBlackTree
 
N map presentation
N map presentationN map presentation
N map presentationulirraptor
 

What's hot (20)

Apache ppt
Apache pptApache ppt
Apache ppt
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmeter
 
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBase
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBaseHBaseCon 2015: Taming GC Pauses for Large Java Heap in HBase
HBaseCon 2015: Taming GC Pauses for Large Java Heap in HBase
 
Web Programming and Internet Technologies
Web Programming and Internet TechnologiesWeb Programming and Internet Technologies
Web Programming and Internet Technologies
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
New relic
New relicNew relic
New relic
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
NMAP - The Network Scanner
NMAP - The Network ScannerNMAP - The Network Scanner
NMAP - The Network Scanner
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Recon with Nmap
Recon with Nmap Recon with Nmap
Recon with Nmap
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
 
Taking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in MemoryTaking Hunting to the Next Level: Hunting in Memory
Taking Hunting to the Next Level: Hunting in Memory
 
Performance testing with Apache JMeter
Performance testing with Apache JMeterPerformance testing with Apache JMeter
Performance testing with Apache JMeter
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
N map presentation
N map presentationN map presentation
N map presentation
 

Viewers also liked

2015 03 06 lmtv wtf http webcast
2015 03 06 lmtv wtf http webcast2015 03 06 lmtv wtf http webcast
2015 03 06 lmtv wtf http webcastTony Fortunato
 
2015 02 24 lmtv baselining
2015 02 24 lmtv baselining2015 02 24 lmtv baselining
2015 02 24 lmtv baseliningTony Fortunato
 
CapAnalysis - Deep Packet Inspection
CapAnalysis - Deep Packet InspectionCapAnalysis - Deep Packet Inspection
CapAnalysis - Deep Packet InspectionChris Harrington
 
Deep Packet Inspection technology evolution
Deep Packet Inspection technology evolutionDeep Packet Inspection technology evolution
Deep Packet Inspection technology evolutionDaniel Vinyar
 
Wireshark Traffic Analysis
Wireshark Traffic AnalysisWireshark Traffic Analysis
Wireshark Traffic AnalysisDavid Sweigert
 
Wireshark
WiresharkWireshark
Wiresharkbtohara
 
Network Packet Analysis with Wireshark
Network Packet Analysis with WiresharkNetwork Packet Analysis with Wireshark
Network Packet Analysis with WiresharkJim Gilsinn
 
Powershell For Developers
Powershell For DevelopersPowershell For Developers
Powershell For DevelopersIdo Flatow
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applicationsIdo Flatow
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
4.2. Web analyst fiddler
4.2. Web analyst fiddler4.2. Web analyst fiddler
4.2. Web analyst fiddlerdefconmoscow
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
What's New in WCF 4.5
What's New in WCF 4.5What's New in WCF 4.5
What's New in WCF 4.5Ido Flatow
 
The Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureThe Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureIdo Flatow
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0Ido Flatow
 
IIS for Developers
IIS for DevelopersIIS for Developers
IIS for DevelopersIdo Flatow
 
Testing Microservices with a Citrus twist
Testing Microservices with a Citrus twistTesting Microservices with a Citrus twist
Testing Microservices with a Citrus twistchristophd
 
Capybara testing
Capybara testingCapybara testing
Capybara testingFutureworkz
 

Viewers also liked (20)

2015 03 06 lmtv wtf http webcast
2015 03 06 lmtv wtf http webcast2015 03 06 lmtv wtf http webcast
2015 03 06 lmtv wtf http webcast
 
2015 02 24 lmtv baselining
2015 02 24 lmtv baselining2015 02 24 lmtv baselining
2015 02 24 lmtv baselining
 
CapAnalysis - Deep Packet Inspection
CapAnalysis - Deep Packet InspectionCapAnalysis - Deep Packet Inspection
CapAnalysis - Deep Packet Inspection
 
Deep Packet Inspection technology evolution
Deep Packet Inspection technology evolutionDeep Packet Inspection technology evolution
Deep Packet Inspection technology evolution
 
Wireshark Traffic Analysis
Wireshark Traffic AnalysisWireshark Traffic Analysis
Wireshark Traffic Analysis
 
Wireshark
WiresharkWireshark
Wireshark
 
Network Packet Analysis with Wireshark
Network Packet Analysis with WiresharkNetwork Packet Analysis with Wireshark
Network Packet Analysis with Wireshark
 
Wireshark Basics
Wireshark BasicsWireshark Basics
Wireshark Basics
 
Powershell For Developers
Powershell For DevelopersPowershell For Developers
Powershell For Developers
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
4.2. Web analyst fiddler
4.2. Web analyst fiddler4.2. Web analyst fiddler
4.2. Web analyst fiddler
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
EF Core (RC2)
EF Core (RC2)EF Core (RC2)
EF Core (RC2)
 
What's New in WCF 4.5
What's New in WCF 4.5What's New in WCF 4.5
What's New in WCF 4.5
 
The Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureThe Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with Azure
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
IIS for Developers
IIS for DevelopersIIS for Developers
IIS for Developers
 
Testing Microservices with a Citrus twist
Testing Microservices with a Citrus twistTesting Microservices with a Citrus twist
Testing Microservices with a Citrus twist
 
Capybara testing
Capybara testingCapybara testing
Capybara testing
 

Similar to Debugging with Fiddler

Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
0.Web Application Architecture.ppt
0.Web Application Architecture.ppt0.Web Application Architecture.ppt
0.Web Application Architecture.pptanoopkumarm
 
Windows Server 2008 R2 Dev Session 03
Windows Server 2008 R2 Dev Session 03Windows Server 2008 R2 Dev Session 03
Windows Server 2008 R2 Dev Session 03Clint Edmonson
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows AzureIdo Flatow
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost DevConFu
 
Brocade AWS user group Sydney presentation
Brocade AWS user group Sydney presentationBrocade AWS user group Sydney presentation
Brocade AWS user group Sydney presentationPolarSeven Pty Ltd
 
Novosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"webhostingguy
 
Working with WebServices.ppt
Working with WebServices.pptWorking with WebServices.ppt
Working with WebServices.pptpepep15
 
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Felix Gessert
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous IntegrationDaniel Cerecedo
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed FundamentalsMartin Breest
 
Pres Db2 native rest json and z/OS connect
Pres Db2 native rest json and z/OS connect Pres Db2 native rest json and z/OS connect
Pres Db2 native rest json and z/OS connect Cécile Benhamou
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsMichael Chaize
 
Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.Sreejesh Madonandy
 

Similar to Debugging with Fiddler (20)

Realtime with websockets
Realtime with websocketsRealtime with websockets
Realtime with websockets
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
0.Web Application Architecture.ppt
0.Web Application Architecture.ppt0.Web Application Architecture.ppt
0.Web Application Architecture.ppt
 
Windows Server 2008 R2 Dev Session 03
Windows Server 2008 R2 Dev Session 03Windows Server 2008 R2 Dev Session 03
Windows Server 2008 R2 Dev Session 03
 
Caching in Windows Azure
Caching in Windows AzureCaching in Windows Azure
Caching in Windows Azure
 
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost Jon Arne Sæterås - Give Responsive Design a mobile performance boost
Jon Arne Sæterås - Give Responsive Design a mobile performance boost
 
Brocade AWS user group Sydney presentation
Brocade AWS user group Sydney presentationBrocade AWS user group Sydney presentation
Brocade AWS user group Sydney presentation
 
Websockets
WebsocketsWebsockets
Websockets
 
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
 
Novosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco: Citrix tips and best practices
Novosco: Citrix tips and best practices
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
 
Working with WebServices.ppt
Working with WebServices.pptWorking with WebServices.ppt
Working with WebServices.ppt
 
ColdFusion 10
ColdFusion 10ColdFusion 10
ColdFusion 10
 
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
 
Drone Continuous Integration
Drone Continuous IntegrationDrone Continuous Integration
Drone Continuous Integration
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed Fundamentals
 
Pres Db2 native rest json and z/OS connect
Pres Db2 native rest json and z/OS connect Pres Db2 native rest json and z/OS connect
Pres Db2 native rest json and z/OS connect
 
Web Hacking
Web HackingWeb Hacking
Web Hacking
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex apps
 
Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.Web Performance Internals explained for Developers and other stake holders.
Web Performance Internals explained for Developers and other stake holders.
 

More from Ido Flatow

Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT CoreIdo Flatow
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
Production Debugging War Stories
Production Debugging War StoriesProduction Debugging War Stories
Production Debugging War StoriesIdo Flatow
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...Ido Flatow
 
Building IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on AzureBuilding IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on AzureIdo Flatow
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the FieldMigrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the FieldIdo Flatow
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2Ido Flatow
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Ido Flatow
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2Ido Flatow
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
IaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute SolutionsIaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute SolutionsIdo Flatow
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsIdo Flatow
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF WorkshopIdo Flatow
 
Automating Windows Azure
Automating Windows AzureAutomating Windows Azure
Automating Windows AzureIdo Flatow
 

More from Ido Flatow (14)

Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT Core
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Production Debugging War Stories
Production Debugging War StoriesProduction Debugging War Stories
Production Debugging War Stories
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
 
Building IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on AzureBuilding IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on Azure
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the FieldMigrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015Debugging your Way through .NET with Visual Studio 2015
Debugging your Way through .NET with Visual Studio 2015
 
Introducing HTTP/2
Introducing HTTP/2Introducing HTTP/2
Introducing HTTP/2
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
IaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute SolutionsIaaS vs. PaaS: Windows Azure Compute Solutions
IaaS vs. PaaS: Windows Azure Compute Solutions
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP Fundamentals
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
 
Automating Windows Azure
Automating Windows AzureAutomating Windows Azure
Automating Windows Azure
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Debugging with Fiddler

  • 1. Ido Flatow Senior Architect Microsoft MVP SELA Group Debugging the Web with Fiddler @idoFLATOW http://bit.ly/flatow-blog This presentation: http://sdrv.ms/13mgEP9
  • 2. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER MEET FIDDLER…
  • 3. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER MEET FIDDLER…
  • 4. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER MEET FIDDLER…
  • 5. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER Application Network APIs Proxy Website WHAT IS FIDDLER?
  • 6. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER HOW FIDDLER WORKS… Internet Explorer WinINET Office CryptoAPI WinHTTP Fiddler Firefox Upstream Proxy Web Site Firewall
  • 7. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER FIDDLER FACTS  A proxy server  An HTTP/HTTPS Sniffer  An HTTP Debugger  Written in .NET 3.5 / 4  A free utility (for now, cross your fingers)  An extensible application  A must tool for web developers  Unfortunately, it doesn’t make coffee!
  • 8. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER SCENARIO: INSPECTING TRAFFIC  Web sessions  Inspectors  Filters  QuickExec
  • 9. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER THE SESSIONS LIST 9 Sequence and color coding Caching information Origin process Manual commentsResponse size
  • 10. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER FIDDLER TO THE RESCUE  Browsers (Static sites, ASP.NET, J2EE, PHP)  Desktop applications that use HTTP  Web services  Windows Phone Emulator  Any device that supports a proxy server ( )
  • 11. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER THE RIGHT INSPECTOR FOR THE JOB
  • 12. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER FILTER BY… By process type By specific process By host By process name/PID/svchost By URL By status code By MIME or size QuickExec
  • 13. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER FIDDLER AND HTTPS  HTTPS is secured - between two machines  Fiddler acts as a “machine-in-the-middle”  Generates certificates for web sites on-the-fly  Fiddler supports client certificates for authentication  Supports excluding problematic HTTPS sites
  • 14. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER IF YOU SEE THIS, DON’T PANIC
  • 15. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER SCENARIO: PERFORMANCE TUNING  Timeline  Statistics  More inspectors
  • 16. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER REMINDER UNDERSTANDING THE CONNECTION Application Network APIs Proxy Website Second connection From Fiddler to the server First connection From client to Fiddler
  • 17. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER VISUALIZE THE TRAFFIC WITH TIMELINE Start End Bar color = MIME Red = new connection Green = reused connection Disk = cached response Bar = begin receive Stripes = buffered by Fiddler Prefer stream over buffer Use buffer when editing responses
  • 18. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER STATISTICS ARE IMPORTANT  Single page statistics give info on performance  Client processing  Server processing  Network latency  Server time: ServerBeginResponse – ServerGotRequest  Upload time: ServerGotRequest – ClientDoneRequest  Download time: ServerDoneResponse – ServerBeginResponse  Watch out for misleading connection reuse
  • 19. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER DRAWING CONCLUSIONS  Reduce number of requests  Reduce traffic roundtrips  Reduce the size of requests and responses  Applying compression where needed  Identify non-cached responses  Use Fiddler to improve performance, not to measure it!
  • 20. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER SCENARIO: DEBUGGING  Replay  Composer  Breakpoints
  • 21. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER PLAY IT AGAIN, SAM  Why run the client scenario again, just to resend the request?  Simply click “Replay”  Reissue a single request  Reissue a set of requests  Reissue unconditionally (no cache headers)  Reissue multiple times
  • 22. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER CHANGING REQUESTS WITH COMPOSER  Create any request from scratch  Use previous requests with drag-n-drop  Don’t bother calculating content length www.bobthebuilder.com
  • 23. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER DEBUGGING LOCALHOST  In some cases, proxies are bypassed when using localhost (127.0.0.1) addresses  What to do?  Use the machine’s name  Use fictitious DNS names  ipv4.fiddler or ipv6.fiddler (converted to 127.0.0.1 / [::1])  localhost. or localhost.fiddler (converted to localhost)  Force the use of a proxy with netsh
  • 24. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER SCENARIO: TESTING  Save / Export  Auto responder
  • 25. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER WHAT DID YOU TYPE IN WRONG TO GET IT TO CRASH?  Save traffic to file  Save sessions as .SAZ (Zip) archive  .SAZ stores content and session info  Other archiving options:  HTTP Archive (HAR)  Visual Studio Web Test
  • 26. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER AUTO-RESPONDER AN IN-MEMORY WEBSITE  If URI matches… then respond with…  Respond with file/redirection/breakpoint/drop  Not only that, you can also:  Import sessions as responses  Edit stored responses  Use original latency time (updatable)  Export and import rules
  • 27. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER SCENARIO: CUSTOMERS  Reverse proxy  Fiddler Cap
  • 28. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER CAN’T FIDDLE THE CLIENT? FIDDLE THE SERVER Local Network Web ServerFiddler 8180 http://bit.ly/fiddler-reverse-proxy
  • 29. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER MINI FIDDLER, CUSTOMER-ORIENTED  Six simple steps  Install and run  Click 1. Start Capture  Browse the web site  [Take some screenshots]  Click 2. Stop Capture  Click 3. Save Capture  Email me the .SAZ file 29
  • 30. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER EXTENDING FIDDLER  Customize rules script  Create custom inspectors  Create requests and responses auto-modifiers  Create new exporter/importer  Extend QuickExec with new commands  Add menus and tabs
  • 31. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER FIDDLER IS MORE THAN A SNIFFER  Monitors traffic, yes, but also…  Controls traffic  Modifies traffic  Generates traffic  Easy to use  Extensible
  • 32. www.devconnections.com DEBUGGING THE WEB WITH FIDDLER http://bit.ly/flatowblog @IdoFlatow idof@sela.co.il My Info Fiddler Website http://www.fiddler2.com http://groups.google.com/group/httpfiddler Fiddler Forum http://www.telerik.com/automated-testing-tools/blog/eric-lawrence.aspx http://blogs.msdn.com/b/fiddler (older blog) Fiddler Blog http://sdrv.ms/13mgEP9 This Presentation RESOURCES