HTTPQUERY
Español

423 Locked

Uso

El error 423 Locked forma parte de WebDAV, que se utiliza como un sistema de archivos sobre HTTP. Los clientes tienen la opción de aplicar LOCK o UNLOCK a los archivos y, si un cliente intenta modificar un recurso bloqueado, este es el error que devuelve el servidor.

Cuando el servidor concede un bloqueo por primera vez, envía al cliente la cabecera de respuesta Lock-Token, que puede usarse más adelante para desbloquear el recurso o renovar el bloqueo.

Como parte de la respuesta, el servidor incluye un código de precondición o poscondición adecuado para orientar al cliente. Puede tratarse de lock-token-submitted o no-conflicting-lock.

Fuera de WebDAV, algunas plataformas reutilizan el 423 para señalar bloqueos a nivel de cuenta. La API de Shopify devuelve 423 Locked cuando una tienda está bloqueada por infringir repetidamente los límites de tasa de la API o por tener un saldo pendiente en la cuenta. El propietario de la tienda debe resolver el problema desde el panel de socios de Shopify antes de que se restablezca el acceso a la API. Este uso no guarda relación con el bloqueo de archivos.

Impacto en SEO

Los motores de búsqueda como Google no indexarán una URL con el estado de respuesta 423 Locked. Las URL indexadas anteriormente que devuelvan este código de estado se eliminarán de los resultados de búsqueda.

Ejemplo

El cliente intenta subir un archivo a la carpeta de destino. La carpeta está bloqueada, por lo que la operación no se permite y se devuelve el error 423 Locked. En la solicitud posterior, el cliente pide que el recurso se desbloquee incluyendo el Lock-Token como parte de la cabecera de solicitud If.

La solicitud se realiza con éxito porque en ese momento solo había un bloqueo sobre la carpeta. Un UNLOCK correcto solo significa que se ha eliminado el bloqueo al que hace referencia el Lock-Token especificado. Los demás bloqueos siguen vigentes y vuelven a provocar un 423 Locked.

Solicitud inicial

PUT /documents/ HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000

<PDF file transferred>

Respuesta inicial

HTTP/1.1 423 Locked
Content-Type: application/xml
Content-Length: 163

<?xml version="1.0" encoding="utf-8" ?>
<d:error xmlns:d="DAV:">
  <d:lock-token-submitted>
    <d:href>/documents/</d:href>
  </d:lock-token-submitted>
</d:error>

Segunda solicitud, que incorpora la petición de desbloqueo

PUT /documents/ HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000
If: (<urn:uuid:123…789>)

<PDF file transferred>

Respuesta final

HTTP/1.1 204 No Content

Cómo solucionarlo

Compruebe el código de precondición en el cuerpo de la respuesta. Un error lock-token-submitted significa que la solicitud carecía del token de bloqueo necesario. Un error no-conflicting-lock significa que otro bloqueo impide el acceso.

Si el bloqueo pertenece a la misma sesión del cliente, incluya el valor de Lock-Token en una cabecera de solicitud If y reenvíe la solicitud. El servidor valida el token y permite la modificación.

Si el bloqueo lo mantiene otro usuario u otro proceso, espere a que caduque o póngase en contacto con su propietario. Los tiempos de espera de los bloqueos son configurables en el servidor WebDAV. Revise el valor de la cabecera Timeout devuelto cuando se concedió el bloqueo originalmente para determinar cuánto tiempo persiste.

En entornos de SharePoint y Office Online, los archivos bloqueados por aplicaciones de escritorio permanecen bloqueados hasta que la aplicación se cierra o transcurre un tiempo de espera configurable. Un administrador libera los bloqueos obsoletos a través de la interfaz de administración de SharePoint.

Envíe una solicitud UNLOCK con el Lock-Token correspondiente para liberar explícitamente un bloqueo. Un desbloqueo correcto elimina únicamente el bloqueo especificado. Los demás bloqueos sobre el mismo recurso siguen activos y continúan provocando este error.

En el lado del servidor, establezca tiempos de espera de bloqueo razonables para evitar que los bloqueos abandonados impidan el acceso a otros clientes de forma indefinida. La especificación de WebDAV recomienda que los servidores apliquen límites de tiempo de espera en lugar de conceder bloqueos infinitos.

Para los consumidores de la API de Shopify, un 423 significa que la tienda en sí está bloqueada. Salde cualquier importe pendiente a través del panel de socios o póngase en contacto con el soporte de Shopify para restablecer el acceso a la API.

Referencias de código

.NET

HttpStatusCode.Locked

Rust

http::StatusCode::LOCKED

Rails

:locked

Go

http.StatusLocked

Symfony

Response::HTTP_LOCKED

Python3.5+

http.HTTPStatus.LOCKED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_LOCKED

Angular

@angular/common/http/HttpStatusCode.Locked