U uobičajenom poslu web developera posmatranje saobraćaja između web pregledača (browsera ;)) i servera je maltene dnevni posao – da li su svi elementi na mestu (404 greške), koje su veličine objekata koji se učitavaju, šta dolazi iz keša browsera a šta se dovlači, koliko HTTP zahteva je potrebno za stranu – sve ovo bitno utiče na odziv i svekupni utisak vaše web aplikacije.
Za gornje zadatke postoji mnogo komercijalnih proizvoda, da pomenem možda najpoznatiji Http Watch – dodatak za IE browser i sa cenom od 249$ (jedna licenca) pa sve do $9950 (kompanijska licenca).
No, ja sam veliki poklonik Freeware i Open Source rešenja, pa se trudim da za većinu poslova (i uspevam) nađem alternative komercijalnim rešenjima. Tako je i ovde:
U početku sam koristio HttpSpy – ovo je više klasičan proxy, koji se postavlja između browsera i servera i hvata sav saobraćaj. Moćna mogućnost ovog programa je simulator modema – smanjivanje brzine konekcije između 14.4k i 256k – na broadband konekcijama (za Srbiju je to 128/64 Kbps ;)) se lako zaboravi na 33kbps klijente – ovo toplo preporučujem u dizajn fazi programa a ne u finalnoj. HttpSpy i dalje koristim kada je potrebna provera za modemske korisnike.
Sada je pravi izbor, teška kategorija, Fiddler– HTTP debugging proxy. Napravljen od strane Microsofta, daleko je od prostog proksija – sem što “hvata” http saobraćaj, parsira ga i prezentuje, omogućava direktnu promenu request/response parova!
Fiddler podržava JScript.NET jezik – uz pomoć prostog event modela, možete se nakačiti na saobraćaj i ispitivati/menjati sadržaj i tako daleko, daleko brže naći i otkloniti problem u vašem kodu. Evo nekoliko jednostavnih primera:
1. Pretvaraj se da je upit došao od Google boot-a:
Event: OnBeforeRequest
Skript: oSession.oRequest["User-Agent"]="Googlebot/2.X (+http://www.googlebot.com/bot.html)";
2. Zabrani učitavanje CSS fajlova:
Event: OnBeforeRequest
Skript:
if (oSession.url.toLowerCase().indexOf(".css")>-1){ oSession["ui-color"]="orange"; oSession["ui-bold"]="true"; oSession.oRequest.FailSession("CSS file"); }
Gomilu ovakvih primera imate i ovde – ScriptSamples biblioteka.
U svakom slučaju, kada jednom probate Fiddler, pitaćete se kako ste bez njega uopšte radili 🙂
Referenca:
- Fiddler – – Freeware, HTTP debugging proxy, analiza i mogućnost izmene http saobraćaja, samostalna aplikacija, potreban .Net framework
- HttpSpy – Freeware, HTTP proxy, hvatanje http saobraćaja i mogućnost simulacije nižih brzina prenosa, samostalna aplikacija, potreban .Net framework
- Http Watch – komercijalni, 249$ – 9950$, dodatak za Internet Explorer