412
Precondition Failed
Specifikation af HTTP-statuskode 412
Statuskoden 412 Precondition Failed angiver, at en eller flere betingelser, der er angivet i felterne i anmodningshovedet, blev evalueret som falske, da de blev testet på serveren. Denne svarkode gør det muligt for klienten at opstille forudsætninger for den aktuelle ressourcestatus (dens aktuelle repræsentationer og metadata) og dermed forhindre, at anmodningsmetoden anvendes, hvis målressourcen befinder sig i en uventet tilstand.
Kilde / citat fra: HTTP-statuskoden 412 Precondition Failed er specificeret i afsnit 4.2 i RFC7232.
HTTP-protokol
Hvordan får man en 412-statuskode med PHP?
Hvis du vil have HTTP-statuskoden 412 på en webside, kan du bruge PHP-funktionen http_response_code. Syntaksen er som følger: http_response_code(412) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Test 412 HTTP-statuskoden
For at kunne vise HTTP-statuskoden (i dette tilfælde 412 Precondition Failed) og andre oplysninger på klientsiden skal udviklingskonsollen åbnes med F12. Naviger derefter til fanen "Network" (netværk). Nu kan siden åbnes, hjemmesiden (eksempel index.php) skal være synlig i fanen netværk. Denne skal vælges, og derefter skal Herder-sektionen vælges. Brugeren vil derefter se følgende resultat:
URL: https://http-statuscode.com/errorCodeExample.php?code=412
Status: 412 Precondition Failed
Disse: Network
IP-adresse: XX.XX.XX.XX
Hvordan løser jeg problemet med 412-statuskoden?
1. Forstå årsagen
Tjek forudsætningsheaderen: Identificer først, hvilken forudsætning der var angivet i headeren på din anmodning, og som ikke blev opfyldt. Det kan være en If-Match
, If-None-Match
, If-Modified-Since
, If-Unmodified-Since
eller en If-Range
header.
2. Tjek ressourcens metadata
E-Tag og Last-Modified header: Tjek metadataene for den ønskede ressource. Sammenlign E-Tag
-værdien eller Last-Modified
-datoen for ressourcen med den værdi, der er angivet i anmodningen, for at identificere uoverensstemmelser.
3. Korrigering af anmodningen
Justering af headers: Hvis kontrollen viser, at værdierne i anmodningens tilstandsheaders ikke stemmer overens med ressourcens aktuelle tilstand, skal du justere dem i overensstemmelse hermed.
Fjern unødvendige headere: I nogle tilfælde kan det være nyttigt at fjerne visse betingede headere, hvis de ikke er absolut nødvendige for anmodningen.
4. Cachestyring
Cachetjek: Sørg for, at anmodningen ikke er påvirket af en cachelagret tilstand af ressourcen. Ryd om nødvendigt cachen, eller brug Cache-Control-headere til at omgå cachen.
5. Serverkonfiguration
Konfigurationstjek: Tjek, om der er særlige regler eller konfigurationer på serveren, der kan føre til dette problem, især i forbindelse med behandling af betingede anmodninger.
6. Kommunikation med API-/serverudvikleren
Dokumentation og support: Hvis problemet fortsætter, skal du konsultere API- eller serverdokumentationen og om nødvendigt kontakte support eller udviklerfællesskabet for yderligere hjælp.
7. Fejlhåndtering i applikationen
Robust fejlhåndtering: Implementer robust fejlhåndtering i din applikation for at reagere passende på 412 Precondition Failed-statuskoden, f.eks. ved at gensende anmodningen med tilpassede headere eller ved at give brugeren besked om fejlen.
8. Test og overvågning
Udførlig test: Test din applikation under forskellige forhold for at sikre, at den reagerer korrekt på 412 Precondition Failed-fejl.
Overvågning: Brug overvågningsværktøjer til at opdage og analysere sådanne fejl, så du kan reagere proaktivt på problemer.
Overvågning: Brug overvågningsværktøjer til at opdage og analysere sådanne fejl, så du kan reagere proaktivt på problemer.
Sådan opretter du din egen fejlside for statuskode 412
Apache Webserver
Webserveren "Apache" er en af de mest almindelige webservere på internettet. For at oprette din egen 412 Precondition Failed-fejlside i "Apache" skal du foretage følgende ændring i følgende fil.
NGINX Webserver
I lighed med webserveren "Apache" er "NGINX" også meget udbredt på internettet. For at oprette din egen 412 Precondition Failed-fejlside i "NGINX" skal du foretage følgende ændring i følgende fil.
location = /412.html {
root /usr/share/nginx/html;
internal;
}
Browserkompatibilitet for 412-statuskoden
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 |
Konstanter i programmeringssprog
HttpStatusCode.PreconditionFailed
http.StatusPreconditionFailed
Response::HTTP_PRECONDITION_FAILED
httplib.PRECONDITION_FAILED
http.client.PRECONDITION_FAILED
http.HTTPStatus.PRECONDITION_FAILED
:precondition_failed
Understatuskoder til 412-statuskoden
412.0 | Precondition failed HTTP IIS, Uofficiel |