El servidor de origen requiere que la solicitud sea condicional.
Su uso típico es evitar el problema de “actualización perdida”, donde un cliente obtiene el estado de un recurso, lo modifica, y lo envía de vuelta al servidor, cuando mientras tanto una tercera parte ha modificado el estado en el servidor, llevando a un conflicto. Al requerir que las solicitudes sean condicionales, el servidor puede asegurar que los clientes están trabajando con las copias correctas.
Las respuestas que usan este código de estado DEBERÍAN explicar cómo reenviar la solicitud exitosamente. Por ejemplo:
HTTP/1.1 428 Precondition Required
Content-Type: text/html
<html>
<head>
<title>Precondition Required</title>
</head>
<body>
<h1>Precondition Required</h1>
<p>This request is required to be conditional; try using "If-Match".</p>
</body>
</html>
Las respuestas con el código de estado 428 NO DEBEN ser almacenadas por un caché.
- Source: RFC6585 Section 3
Referencias por lenguaje
- .NET HTTP Status Enum
HttpStatusCode.PreconditionRequired - Rust HTTP Status Constant
http::StatusCode::PRECONDITION_REQUIRED - Go HTTP Status Constant
http.StatusPreconditionRequired - Symfony HTTP Status Constant
Response::HTTP_PRECONDITION_REQUIRED