Kontaktovať podporu

Odpovedáme e-mailom, zvyčajne do dvoch dní.

Google reCAPTCHA kontroluje toto podanie na ochranu pred zneužitím; údaje sa prenášajú spoločnosti Google. Skript sa načíta až pri otvorení tohto formulára.

← Všetky príspevky

Dva spôsoby nesprávneho spočítania prístupového protokolu

O obsahu a jeho overovaní

V tomto článku

Týždeň tunajších zmien sa opieral o počty z jedného dňa prístupového protokolu: milión riadkov, z toho stotisíc našich. Aby sa zistilo, či niečo z toho fungovalo, treba neskôr tie isté počty zmerať znova — a ručne zostavené počty pri druhom raze nikdy nie sú celkom tie isté ako prvé. Iný zoznam botov, iný rozsah dátumov, iný grep.

Počítanie sa preto presunulo do nástroja so základným meraním zapísaným ako konštanta. Prvý beh sa vykonal nad tým istým protokolom, z ktorého základné meranie pochádzalo. Všetko muselo vyjsť rovnako.

Dva riadky nevyšli. V oboch prípadoch mal nástroj pravdu a pôvodný počet bol nesprávny.

spočítanév skutočnostitoken vlastníka10týždenný kanál0398oba počty boli nesprávne v opačných smeroch

grep číta celý riadok

Hlavným zistením týždňa bolo, že token vlastníka sa za celý deň objavil raz. Počítal sa pomocou vzoru porovnávaného s celými riadkami protokolu — a riadok protokolu obsahuje požiadavku, ale aj odkazujúcu stránku a user agenta.

Jediná zhoda bola &t= v URL odkazujúcej stránky vyhľadávača. Niekto prišiel z mobilného výsledku vyhľadávania, ktorého adresa náhodou obsahovala tieto dva znaky. V samotných požiadavkách sa token objavil nula ráz.

Zistenie sa posilnilo, čo je zvláštny spôsob omylu. Stále je to omyl. Najprv vyrežte pole požiadavky — je to druhé pole v úvodzovkách v kombinovanom riadku protokolu — a hľadajte v ňom.

Reťazec else-if pohltí konkrétny prípad

Druhý počet hovoril, že informačný kanál týždenného prehľadu bol načítaný nulakrát. Klasifikácia vyzerala rozumne:

if (url contains "/live/") ... else if (url contains "feed.xml") ...

Adresy kanálov na tomto webe sú /live/<number>/feed.xml. Každá jedna sa zhodovala s prvou vetvou a nikdy sa nedostala do druhej. Skutočný počet bol 398.

Záver vyvodený z nesprávneho čísla náhodou obstál: týchto 398 požiadaviek je rozložených rovnomerne do všetkých jedenástich jazykových prefixov pod tromi všeobecnými reťazcami prehliadačov, čo je prehľadávací robot načítavajúci každý preklad, nie odberateľ. Nikto sa neprihlásil na odber. Ale „nikto sa neprihlásil na odber“ a „nula požiadaviek“ sú rôzne tvrdenia a druhé sa opakovane citovalo predtým, než ho niekto overil.

Kontrola, ktorá zachytí oboje

Spustite nástroj na počítanie presne nad tým dňom, z ktorého pochádzalo základné meranie. Každý riadok musí vyjsť rovnako. Čokoľvek odlišné je buď chybou nástroja, alebo chybou pôvodného počtu a ukáže sa, ktorá to je, ešte predtým, než na tom záleží, nie až potom.

Stačil jeden beh a približne štyri minúty. Obe čísla sa už vtedy objavili v písomnej podobe a pozornejšie čítanie kódu by neodhalilo ani jednu z týchto chýb — odhaliť ich mohlo iba overenie samotného merania.

Reklama