Hae mikä tahansa HTTP-tilakoodi: mitä se tarkoittaa, milloin palvelimet lähettävät sen ja mikä määritys sen määrittelee. Hae numeron tai avainsanan perusteella, suodata luokan mukaan ja linkitä suoraan koodiin.
Palvelin vastaanotti pyynnön otsikkotiedot, ja asiakas voi lähettää rungon. Näkyy, kun asiakas lähettää ”Expect: 100-continue” ennen suuren rungon lataamista.
Palvelin on hyväksynyt WebDAV-pyynnön, mutta ei ole vielä saanut sitä valmiiksi. Tämä poistettiin myöhemmistä WebDAV-määrityksistä, ja sitä käytetään nykyään harvoin.
Lähetetään ennen lopullista vastausta, jotta selain voi aloittaa Link-otsakkeissa lueteltujen resurssien esilatauksen. CDN:t ja palvelimet käyttävät tätä nopeuttaakseen sivujen latautumista.
Pyyntö onnistui ja loi uuden resurssin, joka yleensä tunnistetaan Location-otsakkeesta. Tyypillinen onnistuneen POST-pyynnön jälkeen, joka luo tietueen.
Palvelin palauttaa vain asiakkaan pyytämän tavualueen. Näkyy, kun videot toistuvat suoratoistona, lataukset jatkuvat tai asiakas lähettää Range-otsakkeen.
Resurssi on siirtynyt pysyvästi Location-otsakkeessa annettuun URL-osoitteeseen. Selaimet ja hakukoneet päivittävät linkkinsä; jotkin asiakkaat muuttavat POST-pyynnön GET-pyynnöksi seuratessaan sitä.
Resurssi on tilapäisesti toisessa URL-osoitteessa, joka annetaan Location-otsikossa. Yleinen kirjautumisten jälkeen ja lyhytaikaisissa uudelleenohjauksissa; selaimet seuraavat sitä yleensä GET-pyynnöllä.
Asiakkaan tulee hakea tulos toisesta URL-osoitteesta GET-pyynnöllä. Käytetään lomakkeen POST-pyynnön jälkeen ohjaamaan vahvistussivulle (Post/Redirect/Get-malli).
Välimuistissa oleva kopio on edelleen voimassa, joten palvelin ei lähetä sisältöä. Näkyy, kun selain tarkistaa välimuistissa olevan tiedoston uudelleen If-None-Match- tai If-Modified-Since-otsikolla.
Resurssi on tilapäisesti toisessa URL-osoitteessa, ja asiakkaan on toistettava pyyntö samalla metodilla ja sisällöllä. Selainten käyttämä myös sisäisissä HSTS-uudelleenohjauksissa HTTPS:ään.
Resurssi on siirtynyt pysyvästi, ja asiakkaan on käytettävä samaa metodia ja sisältöä uudessa URL-osoitteessa. 307:n pysyvä vastine, turvallinen POST-pyyntöjen uudelleenohjaukseen.
Pyynnöstä puuttuvat kelvolliset todennustiedot. Nimestään huolimatta se tarkoittaa 'todentamatonta'; palvelin lähettää WWW-Authenticate-otsikon, jossa kerrotaan miten kirjautua.
Palvelin ymmärsi pyynnön mutta kieltäytyy siitä, eikä uudelleenkirjautuminen auta. Näkyy, kun käyttöoikeudet puuttuvat, hakemistolistaus on poistettu käytöstä tai palomuuri estää asiakkaan.
Resurssi on olemassa, mutta se ei tue käytettyä HTTP-metodia, kuten POST-pyyntö vain luku -URL-osoitteeseen. Vastaus luettelee sallitut metodit Allow-otsikossa.
Pyynnön otsikoissa ollut ehto, kuten If-Match, ei täyttynyt. Käytetään estämään resurssin ylikirjoitus, jos se on muuttunut sen jälkeen, kun asiakas on viimeksi lukenut sen.
URL-osoite on pidempi kuin palvelin pystyy käsittelemään. Yleensä syynä on lomake, joka lähettää liikaa dataa GET-pyynnössä, tai uudelleenohjaussilmukka, joka lisää parametreja jatkuvasti.
Aprillipila vuoden 1998 Hyper Text Coffee Pot Control Protocol -protokollasta: teekannu, joka kieltäytyy keittämästä kahvia. HTTP varaa koodin käyttämättömäksi, mutta jotkin palvelimet palauttavat sen pääsiäismunana tai hylätäkseen ei-toivotut botit.
Pyyntö on muodollisesti oikea, mutta sen sisältö on virheellinen, kuten lomake, jonka validointisäännöt eivät täyty. API:t käyttävät tätä laajasti validointivirheisiin.
Asiakas on lähettänyt liian monta pyyntöä tietyssä ajassa. API:t käyttävät sitä pyyntöjen rajoittamiseen ja liittävät usein Retry-After-otsikon, joka kertoo, milloin yrittää uudelleen.
Pyynnön otsikkotiedot ovat liian suuret, usein liian monien tai liian suurten evästeiden vuoksi. Sivuston evästeiden tyhjentäminen yleensä korjaa ongelman.
Ei standardikoodi. nginx käyttää sitä sisäisesti sulkemaan yhteyden lähettämättä vastausta, usein ei-toivotun liikenteen hylkäämiseen; asiakas ei koskaan varsinaisesti vastaanota sitä.
Resurssi ei ole saatavilla oikeudellisista syistä, kuten tuomioistuimen määräyksen tai viranomaissensuurin vuoksi. Numero viittaa romaaniin Fahrenheit 451.
Ei standardikoodi. nginx kirjaa sen lokiin, kun asiakas sulkee yhteyden ennen palvelimen vastausta, esimerkiksi käyttäjän peruuttaessa hitaan sivun tai asiakaspään aikakatkaisun vuoksi.
Palvelin kohtasi odottamattoman virheen eikä voinut suorittaa pyyntöä loppuun. Yleisvirhe, joka johtuu ohjelmointivirheestä, kaatumisesta tai virheellisestä määrityksestä; palvelinlokit sisältävät tiedot.
Yhdyskäytävä tai välityspalvelin sai virheellisen vastauksen taustapalvelimelta. Yleinen tilanne, kun nginxin tai kuormantasaimen takana oleva sovellus on kaatunut tai käynnistyy uudelleen.
Palvelin ei voi tilapäisesti käsitellä pyyntöä, koska se on ylikuormitettu tai huoltotilassa. Retry-After-otsake voi kertoa, milloin yrittää uudelleen.
Asiakkaan on tunnistauduttava saadakseen verkkoyhteyden. Kirjautumisportaalit lähettävät tämän hotellien, lentokenttien tai kahviloiden Wi-Fi-verkoissa ennen sisäänkirjautumista.
Ei standardikoodi. Cloudflare palauttaa sen, kun alkuperäpalvelin kieltäytyi yhteydestä, yleensä koska verkkopalvelin on alhaalla tai estää Cloudflaren IP-osoitteet.
Ei standardikoodi. Cloudflare palauttaa sen, kun se sai yhteyden alkuperäpalvelimeen mutta ei saanut HTTP-vastausta aikakatkaisun puitteissa (oletuksena 100 sekuntia).
Ei standardikoodi. Cloudflare palauttaa sen, kun alkuperäpalvelimen SSL-varmenne on virheellinen ja Full (strict) -SSL-tila on käytössä.
Määritelty: Cloudflare
Käyttöohje
Kirjoita koodinumero (kuten 404 tai vain 5 kaikille palvelinvirheille) tai avainsana, kuten ”uudelleenohjaus” tai ”aikakatkaisu”.
Rajaa luetteloa luokkasuodattimella: informatiivinen, onnistuminen, uudelleenohjaus, asiakasvirhe tai palvelinvirhe.
Käytä koodin kohdalla ”Kopioi linkki” jakaaksesi suoran linkin siihen esimerkiksi vikailmoituksessa.
Näin se toimii
Jokainen HTTP-vastaus alkaa kolminumeroisella tilakoodilla. Ensimmäinen numero määrittää luokan: 1xx informatiiviset vastaukset, 2xx onnistuminen, 3xx uudelleenohjaus, 4xx pyynnöstä johtuvat virheet ja 5xx palvelimen puoleiset virheet. Asiakkaat, jotka eivät tunnista tiettyä koodia, käsittelevät sitä kuin luokkansa x00-koodia, joten tuntematon 4xx-koodi käsitellään kuten 400.
Ydinkoodit määritellään RFC 9110:ssä (HTTP Semantics, 2022), joka korvasi vanhemman RFC 7231:n. Muut tulevat laajennuksista: WebDAV (RFC 4918), RFC 6585 koodeille 428, 429, 431 ja 511, RFC 7725 koodille 451 ja RFC 8470 koodille 425. RFC 9110 nimesi myös kaksi koodia uudelleen: 413 on nyt “Content Too Large” ja 422 “Unprocessable Content”, jotka saatat vielä nähdä vanhoilla nimillään “Payload Too Large” ja “Unprocessable Entity”.
Jotkin lokeissa näkyvät koodit eivät ole standardeja lainkaan. nginx käyttää sisäisesti koodeja 444 ja 494–499 (499 tarkoittaa asiakasta, joka luovutti odottamisen), ja Cloudflare palauttaa koodit 520–526, kun se ei saa kunnollista vastausta alkuperäispalvelimelta. Nämä on merkitty luettelossa “Ei-standardi”-merkinnällä. Syylausekkeet (kuten “Not Found”) näytetään englanniksi määritysten mukaisesti; HTTP/2 ja HTTP/3 lähettävät vain numeron.
Esimerkit
301 tai 308 sivuston siirrossa
Molemmat ovat pysyviä. Käytä 301:tä tavallisiin sivun siirtoihin; käytä 308:aa, kun asiakkaiden on toistettava POST- tai PUT-pyynnöt uuteen URL-osoitteeseen, koska jotkin asiakkaat muuttavat POSTin GETiksi 301:n jälkeen.
401 vai 403
API palauttaa 401:n, kun tokenia ei lähetetä tai se on vanhentunut, joten asiakkaan tulee kirjautua sisään. Se palauttaa 403:n, kun token on kelvollinen mutta käyttäjältä puuttuu oikeus, joten uudelleen kirjautuminen ei auta.
502:n diagnosointi nginxin takana
502 Bad Gateway nginxiltä tarkoittaa, että sen takana oleva sovellus ei vastannut kunnolla. Tarkista, onko sovellusprosessi käynnissä ja mitä se kirjasi lokiin; 504 puolestaan tarkoittaa, että se vastasi liian hitaasti.
Usein kysytyt kysymykset
Mitä eroa on 404:llä ja 410:llä?
404 tarkoittaa, että palvelin ei löydä resurssia eikä kerro mitään tulevaisuudesta. 410 sanoo, että resurssi on poistettu tarkoituksella eikä se palaa, mikä auttaa hakukoneita poistamaan URL-osoitteen nopeammin.
Pitäisikö validointivirhe palauttaa 400 vai 422?
Molempia käytetään. 400 sopii pyyntöihin, joita palvelin ei pysty jäsentämään, kuten rikkinäinen JSON. 422 sopii pyyntöihin, jotka jäsentyvät oikein mutta sisältävät virheellisiä arvoja, kuten sähköpostikenttä ilman @-merkkiä.
Onko 418 I'm a teapot oikea tilakoodi?
Se on peräisin vuoden 1998 aprillipilan RFC:stä. RFC 9110 varaa 418:n käyttämättömäksi, joten sitä ei ole määritetty muuhun, ja jotkin palvelimet palauttavat sen vitsinä, mutta sillä ei ole standardimerkitystä.
Mistä 499 tulee?
499 on nginx-kohtainen. Se näkyy nginx-lokeissa, kun asiakas sulkee yhteyden ennen kuin palvelin lähettää vastauksen. Asiakas ei koskaan saa 499:ää; se viittaa yleensä hitaisiin vastauksiin tai asiakaspuolen aikakatkaisuihin.
Kohtelevatko hakukoneet 302:ta kuten 301:tä?
302 ilmaisee väliaikaisen siirron, joten hakukoneet yleensä pitävät alkuperäisen URL-osoitteen indeksoituna aluksi. Jos 302 pysyy paikallaan pitkään, Google saattaa käsitellä sen pysyvänä uudelleenohjauksena. Käytä pysyviin siirtoihin koodeja 301 tai 308.
Tietosuoja
Luettelo on osa sivua. Haku ja suodatus tapahtuvat selaimessasi; hakusanojasi ei lähetetä minnekään eikä sisällytetä analytiikkaan.