Sivusto voi olla ”pystyssä” ja silti rikki: palvelin vastaa HTTP 200, mutta sivulla näkyy tietokantavirhe, tyhjä tuotelista tai palveluntarjoajan oletussivu. Tarkistus, joka katsoo vain tilakoodia, hyväksyy nämä kaikki. Avainsanavalvonta paikkaa aukon tarkistamalla myös sisällön: tekstin, jonka täytyy olla sivulla, kuten ”Lisää ostoskoriin”, tai tekstin, jota ei saa olla, kuten ”Fatal error”. Jos ehto ei täyty, sivu katsotaan alhaalla olevaksi ja saat hälytyksen.
Miten sivusto voi olla pystyssä mutta rikki
Tilakoodin asettaa se, mikä pyyntöön vastaa, eikä se aina ole se osa kokonaisuutta, joka hajosi. Kaikki nämä tapahtuvat koodilla 200 tai koodilla, jonka valvontasi hyväksyy:
Sovelluksen virhesivu. Jotkin sovelluskehykset, teemat ja omat virhesivut näyttävät virheet koodilla 200 eivätkä 5xx-koodilla.
Tyhjä sivu. PHP:n fatal error voi tuottaa tyhjän vastauksen, jos virheiden näyttäminen on pois päältä, tai välimuisti voi tallentaa ja tarjoilla tyhjän sivun.
Puuttuvat tiedot. Verkkokauppa latautuu, mutta sen taustalla oleva tuote-API on kaatunut, joten jokaisessa kategoriassa lukee ”Tuotteita ei löytynyt”.
Väärä sivusto. Palveluntarjoajan tai DNS:n vaihdon jälkeen verkkotunnus päätyy oletussivulle, kuten ”Welcome to nginx!”, tai parkkisivulle.
Päälle unohtunut huoltosivu. Huoltotilalisäosa, joka vastaa koodilla 200 eikä 503, näyttää tilatarkistukselle toimivalta sivustolta.
Turmeltu tai saastutettu sivu. Hyökkääjä korvaa sisältöä tai lisää roskapostilinkkejä, ja palvelin vastaa silti normaalisti.
Google kutsuu sivua, joka sanoo ”ei löytynyt” tai ei näytä mitään mutta vastaa koodilla 200, nimellä soft 404, ja tällaiset sivut voivat pudota hakutuloksista. Käyttäjät näkevät vain rikkinäisen sivuston.
Miten avainsanavalvonta toimii
Jokaisella tarkistuskerralla valvonta pyytää sivun, lukee palvelimen palauttaman HTML:n ja etsii siitä tekstiäsi. Tiloja on kaksi:
Täytyy sisältää: tarkistus epäonnistuu, kun teksti puuttuu. Käytä tätä todisteena siitä, että sivu toimii, esimerkiksi painikkeen tekstinä tai tuotteen nimenä.
Ei saa sisältää: tarkistus epäonnistuu, kun teksti löytyy. Käytä tätä tunnettuihin virheilmoituksiin.
Kaksi yksityiskohtaa on tärkeää. Tarkistus lukee HTML-lähdekoodia eikä sitä sivua, jonka näet selaimessa, joten JavaScriptin myöhemmin lisäämää tekstiä siinä ei ole. Lisäksi vertailu on yleensä tarkka, myös isojen ja pienten kirjainten osalta. Sanaston avainsanavalvontaa käsittelevässä artikkelissa on lyhyt määritelmä.
Miten valitset hyvän avainsanan
Hyvä ”täytyy sisältää” -avainsana näkyy vain, kun sivu toimii, ja pysyy samana päivästä toiseen. Se sulkee pois hinnat, päivämäärät, varastosaldot, laskurit ja kaiken A/B-testattavan. Suosi tekstiä, jonka sovellus tuottaa tiedoistaan tai sivupohjistaan, jolloin se katoaa sovelluksen kaatuessa, mieluummin kuin staattisen ylätunnisteen tekstiä, jota välimuisti voisi edelleen tarjoilla.
SivuTäytyy sisältääMiksi se toimiiTuotesivuLisää ostoskoriinNäkyy vain, kun tuote ja ostoskori toimivatKategoriasivuTuotteen nimi, jota on aina varastossaPuuttuu, kun tuotetietojen lataus epäonnistuuKirjautumissivuUnohditko salasanasi?Osa oikeaa kirjautumislomaketta, ei virhesivuaBlogi- tai uutissivuJulkaisujärjestelmän tuottama rivi alatunnisteestaKatoaa, kun julkaisujärjestelmä ei saa yhteyttä tietokantaansaHealth-päätepiste”status”:”ok”Sovellus kirjoittaa sen tarkistettuaan riippuvuutensa
API:lle tai health check -päätepisteelle JSON-tarkistus, kuten $.status on yhtä kuin ok, on avainsanaa tarkempi, koska se ei riipu välilyönneistä tai kenttien järjestyksestä.
”Ei saa sisältää” -tarkistukset virheilmoituksille
Negatiivinen tarkistus huomaa viat, jotka osaat nimetä etukäteen. Hyödyllisiä merkkijonoja teknologiasi mukaan:
Error establishing a database connection WordPressissä. Core lähettää sen koodilla 500, mutta oma db-error.php-sivu ei välttämättä.
Fatal error tai Parse error PHP-sivustoilla, jotka näyttävät virheet.
Welcome to nginx! tai palveluntarjoajasi oletussivun otsikko, jotta huomaat, jos verkkotunnus osoittaa väärälle palvelimelle.
Roskapostisanat, joilla ei ole mitään asiaa sivustollesi, yksinkertaisena hälyttimenä saastutetulle sisällölle.
Varo sivuja, joilla merkkijono voi esiintyä ihan oikeutetusti. Tietokantavirheistä kertova blogikirjoitus tai virheilmoitusta lainaava ohjeartikkeli kaataisi ”ei saa sisältää” -tarkistuksen joka kerta. Epävarmassa tilanteessa positiivinen tarkistus tekstille, joka todistaa sivun toimivan, on turvallisempi valinta, koska se huomaa myös viat, joita et osannut ennakoida.
Testaa avainsana ennen kuin luotat siihen
Tarkista, mitä palvelin oikeasti lähettää, älä sitä, mitä selain näyttää. Päätteessä:
curl -s –compressed https://example.com/product/blue-mug | grep -c ”Add to cart”
Jos tulos on 0, valvontakaan ei löydä tekstiä. Tavallisimmat syyt:
JavaScript tuottaa tekstin. Avaa sivun lähdekoodi (älä kehitystyökalujen tarkastelunäkymää), niin näet palvelimen palauttaman HTML:n, ja valitse siinä oleva teksti.
HTML-entiteetit. Ruudulla näkyvä ”Terms & Conditions” on lähdekoodissa usein Terms & Conditions, ja myös kaarevat lainausmerkit voivat olla koodattuja. Valitse teksti ilman erikoismerkkejä tai kopioi se lähdekoodista.
Kirjainkoko ja välilyönnit. CSS:llä isoin kirjaimin muotoiltu painike on HTML:ssä edelleen ”Add to cart”. Myös tekstin sisäiset rivinvaihdot estävät tarkan osuman.
Valvonta näkee eri sivun. Sivustot, jotka valitsevat kielen tai valuutan sijainnin mukaan tai näyttävät tuntemattomille asiakkaille bottitarkistuksen, voivat lähettää valvonnalle eri HTML:n kuin sinulle työpöydän ääressä.
Kun avainsana ei riitä
Sisältö riippuu JavaScriptistä. Yhden sivun sovellukset lähettävät vähän HTML:ää. Tarkista ne oikeassa selaimessa ajettavalla kululla, joka suorittaa JavaScriptin ennen kuin etsii tekstiä.
Vika on muutaman askeleen päässä. Tuotesivu toimii, mutta ostoskoriin lisääminen ei. Monivaiheinen synteettinen tarkistus käy polun läpi ja tarkistaa jokaisen vaiheen.
Sivu on hyvin suuri. Valvonta lukee yleensä vain vastauksen alkuosan. Etsi tekstiä sivun yläosasta tai tarkista pienempi päätepiste.
Sivu on hidas, ei rikki. Silloin kyse on vasteajasta; aseta sen sijaan raja hitaalle vastaukselle.
Tarkistuslista siitä, mitä sivustollasi kannattaa valvoa, ehdottaa, mitkä sivut ansaitsevat sisältötarkistuksen, ja vääriä hälytyksiä vähentävä opas käy läpi loput hienosäädöstä.
Avainsanatarkistukset Uptimecheckissä
Jokaiseen Uptimecheckin käytettävyyden valvonnan HTTP(S)-valvontaan voi lisätä avainsanatarkistuksen odotettujen tilakoodien rinnalle:
Sisältää tai ei sisällä: yksi avainsana valvontaa kohden, tarkka vertailu myös kirjainkoon osalta, vastauksen ensimmäisistä 2 megatavusta. Tarvitsetko samalle sivulle sekä positiivisen että negatiivisen tarkistuksen? Lisää toinen valvonta.
JSON- ja otsaketarkistukset: enintään 10 valvontaa kohden, esimerkiksi $.status on yhtä kuin ok tai Content-Type-otsake, joka sisältää json, API-rajapinnoille ja health-päätepisteille.
Testipyyntö: näet vastauksen ja sen, menevätkö tarkistukset läpi, ennen kuin tallennat valvonnan.
Vahvistettu ja selitetty: epäonnistunut tarkistus toistetaan ennen kuin häiriö avataan, ja häiriö kertoo, mikä oli vialla, esimerkiksi että odotettua tekstiä ei ollut sivulla tai että sivu palautui tyhjänä, ja näyttää vastauksen alun.
JavaScript ja käyttäjäpolut: kulut tarkistavat tekstin jokaisessa vaiheessa, ja oikeassa selaimessa ajettavat kulut näkevät JavaScriptin tuottaman tekstin ja ottavat kuvakaappauksen epäonnistuneesta vaiheesta.
Tarkistukset tehdään jopa minuutin välein Tukholmasta, Lontoosta ja New Yorkista, joten sijainnin mukaan kieltä vaihtava sivusto näyttää Uptimecheckille sen version, jonka se tarjoaa Ruotsiin, Isoon-Britanniaan tai Yhdysvaltoihin; valitse avainsana, joka on sama kaikissa versioissa, tai lähetä otsakkeet, jotka valitsevat kielen. Ohjeet käyttöönottoon löydät artikkelista näin lisäät ensimmäisen valvontasi, ja jos valvonta näyttää sivuston alhaalla, vaikka se toimii sinulla, lue miksi valvonta voi olla alhaalla, vaikka sivusto toimii.
Tee ”pystyssä” tarkoittamaan toimivaa. Kokeile Uptimecheckiä ilmaiseksi 14 päivää, luottokorttia ei tarvita.