<\/HEAD>
V předchozím blogovém příspěvku<\/A> moje vážená kolegyně a soupeřka v deskových hrách Kelly Gerrow-Wilcox diskutovala základy zachycování webového provozu v webovém prohlížeči pomocí vestavěných nástrojů pro vývojáře prohlížeče. Ale co když služby využíváte v ArcGIS Pro, ArcMap nebo jiném klientovi mimo prohlížeč? Přicházejí na řadu: nástroje pro zachycování webového provozu. Existuje mnoho bezplatných nástrojů (například Fiddler<\/A>, Wireshark<\/A>, Charles<\/A> a další), které umožňují uživatelům zachytit webový provoz ze svých počítačů. Tento blog se zaměří na zachycování HTTP\/HTTPS provozu pomocí Fiddleru. Zvolil jsem Fiddler kvůli jeho relativně jednoduchému rozhraní a širokému přijetí v rámci Esri Technical Support. <\/P><\/P>
<\/P>
V panelu Details je mnoho záložek. Nejužitečnější (pro naše účely) jsou Timeline, Statistics, a Inspectors. Ostatní jsou pokročilé funkce mimo rozsah tohoto blogu.
Záložky Statistics a Timeline jsou užitečné při vyšetřování jakýchkoli problémů s výkonem, například pokud služba trvá dlouho načíst v Map Vieweru. Záložka Timeline pomáhá identifikovat, který požadavek v procesu s více požadavky představuje úzké místo. Pro využití záložky Timeline, vyberte více požadavků v seznamu Web Sessions. Časová osa zobrazí požadavky ve sekvenčním „kaskádovém“ formátu. Jakékoli požadavky trvající neobvykle dlouho budou jasně viditelné díky výrazně delšímu pruhu na časové ose.

Statistics zobrazuje přesné časy každého kroku požadavku, od prvotního navázání spojení klientem až po poslední krok přijmutí odpovědi klientem. Toto rozdělení je užitečné pro potenciální identifikaci, který krok v procesu jednoho požadavku představuje úzké místo. Například pokud každý krok trvá zlomek sekundy, ale mezi ServerGotRequest a ServerBeginResponse je několikasekundová pauza, znamenalo by to, že něco na straně serveru způsobuje zpomalení. <br \/><br \/>
<p style="margin-bottom: .0001pt; background: white;"><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>
Nakonec záložka Inspectors je místo, kde se zobrazují většina informací a pravděpodobně zde proběhne většina řešení problémů. Zde se odhaluje podstata interakce aplikací s webovými službami. Záložka Inspectors je dále rozdělena do dvou hlavních částí – informace o požadavku (vše související s požadavkem odeslaným klientem) a informace o odpovědi (vše související s odpovědí vrácenou serverem). Obě části mají téměř identickou sadu podsekcí, které zobrazují obsah požadavku/odpovědi v různých formátech. Níže jsou uvedeny užitečné záložky pro naše účely:
- Headers – Seznam doplňujících informací, které nejsou součástí hlavního požadavku. Může zahrnovat informace jako bezpečnostní/autentizační údaje, formát dat požadavku nebo odpovědi, typ klienta provádějícího požadavek atd. Je to dobré místo k nalezení tokenu ArcGIS Online, pokud je relevantní.
- WebForms (specifické pro požadavek) – V závislosti na typu požadavku zobrazí rozpis každého parametru požadavku a hodnotu tohoto parametru. Například při odesílání vyhledávacího dotazu tato sekce zobrazí parametry dotazu (např. klíčová slova, časová období atd.).
- ImageView (specifické pro odpověď) – Pokud je požadavek na obrázek, ImageView zobrazí vrácený obrázek. To je obzvlášť užitečné u požadavků týkajících se dlaždicových služeb.
- Raw – Zobrazí celý požadavek nebo odpověď v textovém formátu.
black;"> <\/SPAN>JSON<\/STRONG><\/SPAN> 11 Pokud po7eadavek\/odpov1b0f obsahuje data ve forme1tu JSON, tato karta zobrazed obsah v lide9m p59edv1btive9m forme1tu. To je obzvle161t1b u7eite0dne9 pro po7eadavky\/odpov1bdi na REST api server6f ArcGIS Enterprise.<\/SPAN><\/LI>- <\/SPAN>XML<\/STRONG><\/SPAN> 11 Pokud po7eadavek\/odpov1b0f obsahuje data ve forme1tu XML, tato karta zobrazed obsah v lide9m p59edv1btive9m forme1tu. To je obzvle161t1b u7eite0dne9 pro po7eadavky\/odpov1bdi na slu7eby OGC.<\/SPAN><\/LI><\/UL><\/P><\/P>Pokro1il0: To je skvbl Alan. Ale co vlastnb mbm s t1mto informacemi dlat? <\/STRONG><\/SPAN><\/H2>J<\/SPAN>ak budete poueívat informace o síťovém provozu, bude z�viset na tom, co se snažíte zjistit nebo vyřešit. Kontrola síťového provozu mfže pomoci identifikovat kde a co je problém, ale nemfže vám sdělit řešení. Zde vstupuje do hry vaše znalost vaší aplikace, vašich webových slu�eb a pokud vše ostatní selhává, trochu staromódního vyhledávání na webu. Zde je několik běžných příkladů způsobů, jak izolovat problém, kterému čelíte:<\/SPAN><\/P> <\/SPAN><\/P> <\/SPAN>Zkontrolujte HTTP\/HTTPS kód odpovědi v panelu Web Sessions. Všechno, co není 200, by mělo být prozkoumáno (nemusí to nutně být problém, ale stojí za to se na to podívat). Opět, <\/SPAN>zde je popis toho, co tyto kódy znamenají<\/A>. Dokonce i odpověď 200 může obsahovat chybové zprávy nebo jiné užitečné informace.
<\/SPAN>Odpověď 304 ze serveru způsobí, že klient (webový prohlížeč, ArcMap atd.) použije cache klienta a Fiddler proto ve skutečnosti nezachycuje úplnou odpověď ze serveru. Pokud je na kriticky důležitém požadavku odpověď 304, zkuste to znovu buď v režimu Incognito nebo vymažte cache klienta. <\/LI> <\/SPAN>Odpověď 401 nebo 403 obvykle znamená, že server vyžaduje nějakou formu autentizace. To by například pomohlo identifikovat nesdílenou feature service v webové mapě, která je veřejně sdílena. <\/SPAN><\/LI> <\/SPAN>Odpověď 504 obvykle znamená, že něco vypršelo časově. Použijte to spolu se sloupci Timeline<\/STRONG>, Statistics<\/STRONG> a Overall Elapsed<\/STRONG>, které jsou zmíněny výše, k řešení problémů s výkonem.
<\/SPAN><\/LI><\/UL><\/LI> <\/SPAN>Pokud nemůžete najít problematický požadavek, otevřete karty Raw, JSON nebo XML odpovědi a prostě projděte požadavky hledajíc ten, který vrací chybu. <\/SPAN> <\/SPAN>Raw, JSON a XML obsahují přesně stejné informace, jen jsou formátovány odlišně.<\/SPAN><\/LI> <\/SPAN>Když dojde k chybám, chyba uvedená v odpovědi může být podrobnější než chyba zobrazená v uživatelském rozhraní aplikace, která byla použita. <\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/SPAN><\/P>Nalezněte způsob, jak ignorovat irelevantní požadavky!!<\/STRONG>Jedním z nejnáročnějších faktorů při řešení problémů se síťovým provozem je objem požadavků odeslaných a přijatých i při drobných akcích. Níže jsou strategie, které pomohou zabránit zahlcení vašeho logu zbytečnými požadavky.Vypněte Capture (Soubor > zrušte zaškrtnutí Capture Traffic), když víte, že Fiddler nezachycuje relevantní informace.<\/LI>Zavřete všechna okna prohlížeče nebo procesy na pozadí, které nemusí běžet.<\/LI>Pokud Fiddler zachycuje provoz, o kterém víte, že nesouvisí s tím, co vyšetřujete, filtrujte ho z Web Sessions pravým kliknutím na session > Filter > vyberte parametr session, který chcete filtrovat.<\/LI>Pokud jste zachytili řadu požadavků, o kterých víte, že je nepotřebujete, vyberte je a smažte.<\/LI>Zaměřte Fiddler tak, aby zachycoval pouze požadavky z jediné aplikace kliknutím na tlačítko 'Any Process' (vedle malého ikonu terče), podržením a poté uvolněním myši nad aplikací, ze které chcete zachytávat. To by bylo užitečné například pro zachycení veškerého provozu pocházejícího z ArcMap při ignorování všeho ostatního ve vašich prohlížečích. <\/LI><\/UL><\/LI><\/UL><\/LI><\/UL> 
Jakmile izolujete požadavek(y) relevantní k problému, který vyšetřujete, následující tipy mohou pomoci určit skutečný problém.<\span>
Pokud můžete izolovat problematický požadavek, zvažte povahu tohoto požadavku pro určení dalších kroků.
Je to požadavek základních metadat služby? (např. https://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer?f=json)
To by naznačovalo problém se službou (nebo serverem) samotným.
Služba reaguje správně, ale selhává jediný dotaz, dlaždice nebo úloha? (např. http://sampleserver6.arcgisonline.com/arcgis/rest/services/SampleWorldCities/MapServer/export?dpi=96&transparent=true&)
To by naznačovalo problém s daty nebo možná s parametry konkrétního odeslaného požadavku.
Selhávají VŠECHNY požadavky na službu? Možná celý server je mimo provoz nebo nedostupný.
Je možné odeslat jakýkoliv požadavek znovu pravým kliknutím na Web Session > Replay > Reissue and Edit.
- Toto je zvlášť užitečné pro izolaci konkrétní hlavičky nebo parametru požadavku, který může být problematický. Upravte informace v sekcích WebForms nebo Headers a zjistěte zda to opraví problém nebo reprodukuje problém který vyšetřujete.
- Pokud máte jeden fungující a jeden selhávající požadavek, kopírujte hlavičky nebo parametry WebForms jeden po druhém z fungujícího do selhávajícího požadavku. Jakmile požadavek funguje správně, úspěšně jste izolovali parametr/hlavičku způsobující problém.
Je možné odeslat opakované požadavky pravým kliknutím na Web Session > Replay > Reissue Sequentially.
- Toto pomáhá zachytit problémy které mohou být přerušované. Odešlete požadavek 20 nebo 30 krát automaticky a zjistěte zda narazíte na hledaný problém.
Dotazy webových služeb lze zobrazit v prohlížeči s uživatelsky přívětivým rozhraním. To umožňuje snadno upravovat a znovu odesílat dotazy. Pro zobrazení dotazu v prohlížeči:
- Klikněte pravým tlačítkem na dotazovou session
- Kopírovat > Kopírovat URL
- Vložte do okna prohlížeče
- Změňte část URL "...f=json..." na "...f=html..."
- Stiskněte Enter pro načtení stránky
Překladač Fiddler a další software pro zachytávání sítového provozu nejsou všelékem k vyřešení všech problémy související s webovým provozem v GIS, ale jsou to užitečné nástroje, které pomáhají. S trochou praxe může využívání tohoto typu softwaru pomoci vyřešit širokou škálu problémů při přístupu k webovým službám v GIS aplikacích.
Máte nějaké dobré tipy na Fiddler (nebo obecné zaznamenávání síťového provozu)? Neváhejte je zanechat v komentářích!<\/P><\/BODY><\/HTML>