Guides 7 min lukuaika

HTTP-tilakoodit verkkosivuston valvonnassa: muistilista

Mitkä HTTP-tilakoodit tarkoittavat, että sivustosi on alhaalla, mitkä ovat kunnossa ja mitkä riippuvat päätepisteestä. Valvontaan keskittyvä muistilista koodeista 1xx–5xx, uudelleenohjauksista sekä 401-, 403-, 429- ja 5xx-virheistä.

Käytettävyyden valvonnassa lyhyt vastaus on tämä: 2xx-vastaus tarkoittaa, että palvelu toimii, 5xx-vastaus tarkoittaa katkoa, ja kaikki siltä väliltä riippuu siitä, mitä kyseiseltä URL-osoitteelta odotat. 301 on kunnossa, jos sivu on siirretty tarkoituksella, 401 on kunnossa API-päätepisteessä, joka vaatii avaimen, ja 404 kassasivulla on katko. Oikein määritetty valvonta tarkistaa juuri sen tilakoodin, jota odotat, eikä vain sitä, ettei vastaus ole virhe.

Tämä muistilista käy tilakoodiryhmät läpi valvonnan näkökulmasta: mitä kukin koodi tarkoittaa, pitäisikö sen laskea katkoksi ja miten tarkistukset kannattaa määrittää, jotta ne hälyttävät vain todellisista ongelmista.

Viisi ryhmää yhdellä silmäyksellä

AlueMerkitysValvonnan kannalta1xxTiedottava, pyyntö jatkuuHarvinainen; ei lopullinen vastaus2xxOnnistuiYleensä toiminnassa3xxUudelleenohjaus, katso muualtaToiminnassa tai katkolla tarkoituksesta riippuen4xxAsiakasvirhe, pyyntö oli virheellinenRiippuu päätepisteestä5xxPalvelinvirhe, palvelin epäonnistuiKatko

Ensimmäinen numero kertoo, kenen vastuulla ongelma on. 4xx tarkoittaa, että palvelimen mielestä pyyntö oli virheellinen. 5xx tarkoittaa, että palvelin myöntää epäonnistuneensa. Valvonnassa, joka lähettää saman pyynnön joka minuutti, äkillinen 4xx tarkoittaa yleensä silti, että jokin muuttui palvelimen päässä: sivu poistettiin, käyttöoikeus muuttui tai palomuuri alkoi estää pyyntöjä.

1xx: tiedottavat vastaukset

Koodit kuten 100 Continue, 101 Switching Protocols ja 103 Early Hints ovat välivastauksia. Asiakas näkee ne ennen lopullista vastausta tai ei lainkaan. Valvonnan tarkistus odottaa lopullista tilakoodia, joten tämän ryhmän voi jättää huomiotta. Jos tarkistus joskus päättyy 1xx-koodiin, yhteys katkesi kesken vastauksen, ja se on virhe.

2xx: onnistuneet

KoodiNimiHuomioita valvontaan200OKTavallinen onnistunut vastaus201CreatedOdotettu POST-pyynnön jälkeen, joka luo jotain202AcceptedPyyntö jonossa; työ tehdään myöhemmin204No ContentOnnistui tyhjällä rungolla; yleinen DELETE-pyynnöissä ja joissakin terveystarkistuksissa

200 ei takaa, että sivu toimii. Monet sovellukset nappaavat omat virheensä ja näyttävät virhesivun tilakoodilla 200: ”Database connection failed”, tyhjä sivupohja tai huoltoilmoitus. Lisää tärkeisiin tarkistuksiin sisällön tarkistus: odota sanaa tai JSON-kenttää, joka näkyy vain silloin, kun sivu todella toimii. Tilakoodilla 204 ei ole tarkistettavaa runkoa, joten tarkista vain tilakoodi.

3xx: uudelleenohjaukset

KoodiNimiTyypillinen käyttö301Moved PermanentlyVanhasta URL-osoitteesta uuteen, HTTP:stä HTTPS:ään302FoundVäliaikainen uudelleenohjaus, usein kirjautumissivulle303See OtherUudelleenohjaus lomakkeen POST-pyynnön jälkeen304Not ModifiedVälimuistissa oleva kopio on yhä voimassa; vain ehdollisten pyyntöjen jälkeen307Temporary RedirectKuten 302, mutta säilyttää metodin ja rungon308Permanent RedirectKuten 301, mutta säilyttää metodin ja rungon

Uudelleenohjaukset ja valvonta

Valvontatyökalut käsittelevät uudelleenohjaukset jommallakummalla tavalla: ne seuraavat ohjauksia ja raportoivat lopullisen sivun tilan, tai ne pysähtyvät ensimmäiseen vastaukseen ja raportoivat 3xx-koodin. Tiedä, kumpaa työkalusi tekee kussakin tarkistuksessa, sillä molemmat voivat piilottaa ongelmia:

Jos valvonta seuraa uudelleenohjauksia, sivu, joka yhtäkkiä ohjaa etusivulle tai kirjautumisnäkymään, voi silti päättyä tilakoodiin 200. Sisällön tarkistus huomaa tämän: etusivulla ei ole kassasivusi sanoja.

Jos valvonta ei seuraa uudelleenohjauksia, aseta odotetuksi tilaksi uudelleenohjauksen koodi ja valvo lopullista URL-osoitetta omalla tarkistuksellaan.

Varmin tapa on valvoa lopullista URL-osoitetta suoraan. Jos northwind.shop ohjaa osoitteeseen www.northwind.shop, valvo www-versiota ja lisää uudelleenohjaukselle oma tarkistus vain, jos sillä on sinulle merkitystä, esimerkiksi vanhojen kampanjalinkkien vuoksi. Uudelleenohjaussilmukka, jossa kaksi URL-osoitetta osoittaa toisiinsa, näkyy aikakatkaisuna tai ”too many redirects” -virheenä, ja se pitää aina laskea katkoksi.

4xx: asiakasvirheet

KoodiNimiKatko?400Bad RequestYleensä rikkinäinen tarkistus tai muuttunut API401UnauthorizedOdotettu suojatuissa päätepisteissä ilman tunnuksia403ForbiddenOdotettu estetyissä poluissa; ongelma, jos se ilmestyy yhtäkkiä404Not FoundKatko missä tahansa URL-osoitteessa, jonka pitäisi olla olemassa405Method Not AllowedTarkistus käyttää väärää metodia, tai reitti on muuttunut408Request TimeoutPalvelin lakkasi odottamasta pyyntöä410GonePoistettu tarkoituksella429Too Many RequestsPyyntöjä rajoitettu

401 ja 403 suojatuissa päätepisteissä

Joidenkin päätepisteiden kuuluukin hylätä anonyymit pyynnöt. Hallinta-API, joka palauttaa 401 ilman tunnusta, toimii oikein. Sitä voi valvoa kahdella tavalla:

Odota hylkäystä. Aseta odotetuksi tilaksi 401. Tarkistus varmistaa, että palvelin on toiminnassa ja tunnistautumiskerros paikallaan. Jos se joskus palauttaa 200 ilman tunnuksia, se on tietoturvaongelma, josta kannattaa hälyttää.

Lähetä tunnukset. Lisää tarkistukseen API-avainotsake tai basic auth ja odota tilakoodia 200 sekä oikeaa sisältöä. Tämä testaa koko polun, myös päätepisteen takana olevan tietokannan.

Toinen vaihtoehto testaa enemmän, joten käytä sitä kaikessa, mihin asiakkaat luottavat. Käytä valvontaan omaa vain lukuoikeudet sisältävää avainta, älä koskaan henkilökohtaista tai ylläpitäjän avainta.

Äkillinen 403 julkisella sivulla on eri asia. Se tarkoittaa yleensä, että palomuuri, tietoturvalisäosa tai CDN-sääntö on alkanut estää pyyntöjä, joskus vain tietyistä maista tai IP-alueilta. Jos yksi valvontasijainti saa 403:n ja toinen 200:n, syy on todennäköisesti maa- tai IP-sääntö.

429 Too Many Requests

429 tarkoittaa, että palvelin rajoittaa asiakkaan pyyntöjä. Valvonnassa se tarkoittaa yhtä kahdesta: rajasi ovat liian tiukat tavalliselle liikenteelle, tai valvonta itse törmää rajaan, koska se jakaa osoitteen muiden asiakkaiden kanssa. Tarkista Retry-After-otsake ja pyyntörajoitusten asetukset. Jos oikeat käyttäjät saavat 429-vastauksia tavallisella kuormalla, käsittele sitä katkona.

5xx: palvelinvirheet

KoodiNimiMitä se yleensä tarkoittaa500Internal Server ErrorSovellus kaatui tähän pyyntöön501Not ImplementedPalvelin ei tue metodia502Bad GatewayVälityspalvelin sai virheellisen vastauksen taustasovellukselta503Service UnavailableYlikuormitettu, huollossa tai ei toimivaa taustapalvelinta504Gateway TimeoutVälityspalvelin odotti sovellusta liian kauan

Käsittele jokaista 5xx-koodia katkona. Koodit eroavat siinä, mistä kannattaa etsiä ensin: 500 viittaa sovelluksen lokeihin, 502 kaatuneeseen tai uudelleen käynnistyvään sovellusprosessiin, 504 hitaisiin kyselyihin tai ulkoisiin kutsuihin ja 503 kapasiteettiin tai huoltoon. Oppaamme 503 Service Unavailable -virheestä käy syyt ja korjaukset läpi yksityiskohtaisesti.

Jotkin CDN-palvelut ja välityspalvelimet käyttävät 5xx-alueella omia koodejaan, kuten 520–530, CDN:n ja alkuperäispalvelimesi välisiin ongelmiin. Ne eivät kuulu HTTP-standardiin, mutta kävijälle ne tarkoittavat samaa: sivusto ei toimi.

Kaikilla virheillä ei ole tilakoodia

Osa yleisimmistä katkoista ei tuota tilakoodia lainkaan:

DNS-virhe: verkkotunnus ei selviä, esimerkiksi rekisteröinnin vanhennuttua tai tietueen poistamisen jälkeen.

Yhteys hylätty tai katkaistu: portissa ei kuuntele mikään, tai palomuuri pudottaa yhteyden.

TLS-virheet: vanhentunut tai väärälle nimelle myönnetty varmenne pysäyttää pyynnön ennen kuin HTTP-liikennettä syntyy lainkaan.

Aikakatkaisut: palvelin hyväksyy yhteyden, mutta ei vastaa ajoissa.

Hyvä valvonta raportoi nämä virheinä todellisen virheilmoituksen kanssa, jolloin hälytyksessä lukee ”varmenne vanhentunut” eikä pelkkä ”katko”. Siksi HTTP-valvonnan rinnalle kannattaa lisätä myös varmenteiden ja verkkotunnusten vanhenemisen tarkistukset.

Näin asetat odotetun tilakoodin valvontaan

Päätä jokaiselle valvottavalle URL-osoitteelle, miltä terve vastaus näyttää, ja kirjaa se tarkistuksen asetuksiksi:

Valitse olennainen URL-osoite. Lopullinen osoite uudelleenohjausten jälkeen, ei lyhytlinkki.

Aseta metodi. Sivuille GET, ja API-rajapinnoille se, mitä päätepiste vaatii.

Aseta odotettu tila. Yleensä 200. Käytä koodeja 201, 204, 301 tai 401, kun se on tarkoitettu vastaus.

Lisää tunnukset tarvittaessa. Otsakkeet tai basic auth suojatuille päätepisteille.

Lisää sisällön tarkistus. Sana sivulla tai kenttä JSON-vastauksessa, joka näkyy vain, kun kaikki toimii.

Aseta aikakatkaisu. Vastaus, joka kestää 30 sekuntia, on kävijälle epäonnistuminen, vaikka se päättyisi tilakoodiin 200.

Tältä se näyttää lumenanalytics.io-palvelun terveyspäätepisteelle, ensin käsin testattuna curlilla:

curl -sS -o /dev/null -w ”%{http_code} %{time_total}s\n” \
-H ”Authorization: Bearer $MONITOR_TOKEN” \
https://api.lumenanalytics.io/v1/health

Jos komento tulostaa 200 ja kohtuullisen ajan, sama metodi, otsake ja odotettu tila siirretään valvontaan. Uptimecheckissä käytettävyyden valvonta ja API-valvonta hyväksyvät oman metodin, otsakkeet (esimerkiksi basic auth tai bearer-tunnus), rungon sekä avainsana- ja JSON-tarkistukset, ja tarkistus epäonnistuu, kun tilakoodi tai vastaus ei ole odotettu. Lisää itse päätepisteen suunnittelusta oppaassa terveystarkistuspäätepisteen rakentaminen, ja API-valvonnan tarkistuslistasta näet, mitkä päätepisteet kannattaa kattaa.

Pikaopas: onko palvelu alhaalla?

Katko: mikä tahansa 5xx, 404 URL-osoitteessa, jonka pitäisi olla olemassa, aikakatkaisut, DNS- ja TLS-virheet, hylätyt yhteydet.

Todennäköisesti katko: äkillinen 403 tai 429 julkisella sivulla, 400 tai 405 tarkistuksessa, joka ennen meni läpi.

Toiminnassa: odotetuksi määrittämäsi tilakoodi, tarkistamasi sisältö ja kohtuullinen vasteaika.

Yhteenveto

Tilakoodit ovat ensimmäinen asia, jota valvonta katsoo, ja nopein tapa selvittää, missä ongelma on. 5xx tarkoittaa, että palvelin epäonnistui, 4xx, että jokin muuttui siinä, mitä palvelin hyväksyy, ja 3xx vaatii päätöksen siitä, mihin tarkistuksen pitäisi päättyä. Määritä jokaiselle valvonnalle tila, jonka sen pitäisi saada, tarkista tärkeiden sivujen sisältö ja anna hälytyksen kertoa koodi, jotta hälytyksen vastaanottaja tietää, mistä aloittaa.

Uptimecheck tarkistaa verkkosivustosi ja API-rajapintasi jopa minuutin välein ja hälyttää, kun tilakoodi tai vastaus ei ole odotettu. Kokeile ilmaiseksi 14 päivää, luottokorttia ei tarvita.

Kysymykset

Mitkä HTTP-tilakoodit tarkoittavat, että verkkosivusto on alhaalla?

Kaikki 5xx-koodit, kuten 500, 502, 503 ja 504, sekä 404 URL-osoitteessa, jonka pitäisi olla olemassa. Myös aikakatkaisut, DNS-virheet, TLS-virheet ja hylätyt yhteydet tarkoittavat katkoa, vaikka niillä ei ole tilakoodia.

Pitäisikö valvonnan seurata uudelleenohjauksia?

Se riippuu siitä, mitä haluat testata. Kun ohjauksia seurataan, tarkistetaan lopullinen sivu; kun niitä ei seurata, tarkistetaan itse uudelleenohjaus. Yksinkertaisinta on valvoa lopullista URL-osoitetta suoraan ja tarkistaa sen sisältö.

Miten valvon päätepistettä, joka palauttaa 401?

Joko aseta odotetuksi tilaksi 401 varmistaaksesi, että tunnistautumiskerros on paikallaan, tai lähetä tunnukset tarkistuksen mukana ja odota tilakoodia 200. Vain lukuoikeudet sisältävä avain testaa koko pyynnön polun.

Onko 429 Too Many Requests katko?

Jos oikeat käyttäjät saavat sen tavallisella liikenteellä, on. Jos vain valvonta saa sen, pyyntörajoitus osuu valvontapyyntöihin, ja rajaa kannattaa säätää tai vapauttaa valvontaliikenne siitä.

Jatka lukemista

Guides 8 min lukuaika

503 Service Unavailable: mitä se tarkoittaa ja miten sen korjaa

503 Service Unavailable -virhe tarkoittaa, että palvelin on tavoitettavissa mutta ei pysty käsittelemään pyyntöä juuri nyt. Yleiset syyt, niiden korjaaminen ja miten valvonta havaitsee 503-virheet ajoissa.

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