412
Precondition Failed
HTTP-tilakoodin 412 määrittely
Tilakoodi 412 Precondition Failed osoittaa, että yksi tai useampi pyynnön otsikkokentissä annettu ehto arvioitiin vääräksi, kun sitä testattiin palvelimella. Tämän vastauskoodin avulla asiakas voi asettaa ennakkoehtoja resurssin nykyiselle tilalle (sen nykyisille esityksille ja metatiedoille) ja siten estää pyyntömenetelmän soveltamisen, jos kohderesurssi on odottamattomassa tilassa.
Lähde / Lainaus: HTTP-tilakoodi 412 Precondition Failed on määritelty 4.2:n RFC7232 kohdassa RFC7232.
HTTP-protokolla
Kuinka heittää 412-tilakoodi PHP:llä?
HTTP-tilakoodin 412 heittämiseen verkkosivulle voidaan käyttää PHP-funktiota http_response_code. Syntaksi on seuraava: http_response_code(412) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Testaa HTTP-tilakoodi 412
Jotta HTTP-tilakoodi (tässä tapauksessa 412 Precondition Failed) ja muut tiedot voidaan näyttää asiakaspuolella, kehityskonsoli on avattava F12-näppäimellä. Siirry sitten "Network"-välilehdelle. Nyt sivu voidaan avata, verkkosivuston (esimerkki index.php) pitäisi näkyä verkko-välilehdellä. Tämä on valittava ja sen jälkeen on valittava Herder-osio. Käyttäjä näkee sitten seuraavan tuloksen:
URL: https://http-statuscode.com/errorCodeExample.php?code=412
Tila: 412 Precondition Failed
Nuo: Network
IP-osoite: XX.XX.XX.XX
Miten ratkaisen 412-tilakoodiin liittyvän ongelman?
1. syyn ymmärtäminen
Tarkista ennakkoehto-otsake: Selvitä ensin, mikä ennakkoehto oli asetettu pyyntösi otsikkoon, eikä se täyttynyt. Tämä voi olla If-Match
, If-None-Match
, If-Modified-Since
, If-Unmodified-Since
tai If-Range
-otsikko.
2. Resurssin metatietojen tarkistaminen
E-Tag ja Last-Modified-otsikko: Tarkista pyydetyn resurssin metatiedot. Vertaa resurssin E-Tag
-arvoa tai Last-Modified
-päivämäärää pyynnössä määritettyyn arvoon ristiriitaisuuksien havaitsemiseksi.
3. Pyynnön korjaaminen
Ohtiotsikoiden mukauttaminen: Jos tarkistus osoittaa, että pyynnön ehtootsikoiden arvot eivät vastaa resurssin senhetkistä tilaa, mukauta niitä vastaavasti.
Poista tarpeettomat otsikot: Joissakin tapauksissa voi olla hyödyllistä poistaa tietyt ehto-otsikot, jos ne eivät ole pyynnön kannalta ehdottoman välttämättömiä.
4. Välimuistin hallinta
Välimuistin tarkistus: Varmista, että resurssin välimuistissa oleva tila ei vaikuta pyyntöön. Tyhjennä tarvittaessa välimuisti tai ohita välimuisti Cache-Control-otsakkeiden avulla.
5. Palvelimen konfigurointi
Konfiguraation tarkistus: Tarkista, onko palvelimella erityisiä sääntöjä tai konfiguraatioita, jotka voivat johtaa tähän ongelmaan, erityisesti ehdollisten pyyntöjen käsittelyn yhteydessä.
6. Yhteydenpito API:n/palvelimen kehittäjään
Dokumentaatio ja tuki: Jos ongelma ei poistu, tutustu API:n tai palvelimen dokumentaatioon ja ota tarvittaessa yhteyttä tukeen tai kehittäjäyhteisöön saadaksesi lisäapua.
7. Virheenkäsittely sovelluksessa
Varma virheenkäsittely: Toteuta sovelluksessa vankka virheenkäsittely, jotta voit reagoida asianmukaisesti tilakoodiin 412 Precondition Failed, esimerkiksi lähettämällä pyynnön uudelleen mukautetuilla otsikoilla tai ilmoittamalla käyttäjälle virheestä.
8. Testaus ja seuranta
Kattava testaus: Testaa sovelluksesi eri olosuhteissa varmistaaksesi, että se reagoi oikein 412 Precondition Failed-virheisiin.
Valvonta: Käytä valvontatyökaluja tällaisten virheiden havaitsemiseen ja analysointiin, jotta voit reagoida ongelmiin ennakoivasti.
Miten luoda oma virhesivu tilakoodille 412?
Apache Webserver
Verkkopalvelin "Apache" on yksi Internetin yleisimmistä verkkopalvelimista. Jotta voit luoda oman 412 Precondition Failed-virhesivun "Apachessa", seuraavaan tiedostoon on tehtävä seuraava muutos.
NGINX Webserver
Samanlainen kuin verkkopalvelin "Apache", "NGINX" on myös laajalti käytössä Internetissä. Jotta voit luoda oman 412 Precondition Failed-virhesivun "NGINX"-palvelimessa, seuraavaan tiedostoon on tehtävä seuraava muutos.
location = /412.html {
root /usr/share/nginx/html;
internal;
}
Selainyhteensopivuus 412-tilakoodin kanssa
Chrome | no data |
Edge | no data |
Firefox | no data |
Opera | no data |
Safari | no data |
Chrome Android | no data |
Firefox for Android | no data |
Opera Android | no data |
Safari on iOS | no data |
Internet | no data |
WebView Android | no data |
Vakiot ohjelmointikielissä
HttpStatusCode.PreconditionFailed
http.StatusPreconditionFailed
Response::HTTP_PRECONDITION_FAILED
httplib.PRECONDITION_FAILED
http.client.PRECONDITION_FAILED
http.HTTPStatus.PRECONDITION_FAILED
:precondition_failed
Tilakoodin 412 alatilakoodit
412.0 | Precondition failed HTTP IIS, Epävirallinen |