Guides 6 min lukuaika

Sivusto pystyssä mutta rikki? Näin avainsanavalvonta huomaa sen

Sivu voi vastata koodilla 200 ja silti näyttää virheen, tyhjän verkkokaupan tai jonkun toisen sivuston. Näin avainsanatarkistukset huomaavat sen ja näin valitset tekstin, joka ei aiheuta turhia hälytyksiä.

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.

Kysymykset

Mitä avainsanavalvonta on?

Tarkistus siitä, sisältääkö sivun vastaus tietyn tekstin vai ei. Se muuttaa sivun, joka latautuu mutta näyttää väärää sisältöä, epäonnistuneeksi tarkistukseksi ja hälytykseksi.

Miksi avainsanatarkistukseni epäonnistuu, vaikka näen tekstin selaimessa?

Teksti lisätään luultavasti JavaScriptillä, tai se poikkeaa lähdekoodissa kirjainkoon, välilyöntien tai HTML-entiteettien osalta. Vertaa sivun lähdekoodiin tai curl-pyyntöön, älä selaimen näyttämään sivuun.

Kannattaako käyttää ”täytyy sisältää” vai ”ei saa sisältää” -tarkistusta?

Aloita ”täytyy sisältää” -tarkistuksella tekstille, joka todistaa sivun toimivan, koska se huomaa myös viat, joita et ennakoinut. Lisää ”ei saa sisältää” tunnetuille virheilmoituksille sivuilla, joilla ne eivät voi esiintyä oikeutetusti.

Erotteleeko avainsanavalvonta isot ja pienet kirjaimet?

Uptimecheckissä kyllä: vertailu on tarkka, joten ”Add to cart” ei vastaa tekstiä ”ADD TO CART”. Kopioi teksti sivun lähdekoodista, niin voit olla varma.

Jatka lukemista

Guides 5 min lukuaika

403 Forbidden -virhe: mitä se tarkoittaa ja miten sen korjaa

403 tarkoittaa, että palvelin ymmärsi pyynnön ja kieltäytyi siitä. Tavalliset syyt, mitä kävijä voi kokeilla, miten ylläpitäjä löytää estävän säännön ja miksi valvonta saa 403:n, vaikka selain ei saa.

Luku

Katkot ovat menneisyyttä.

Luo ensimmäinen valvontasi alle minuutissa – tai tutustu ensin live-demoon.

14 päivän ilmainen kokeilu · Sen jälkeen ilmainen 5 valvonnalle · Ei luottokorttia