para - ¿Cuál es la diferencia entre los códigos de estado HTTP 301 y 308?
http/1.1 200 ok (1)
Una visión general de
301
,
302
y
307
El
RFC 7231
, la referencia actual para la semántica y el contenido del protocolo HTTP / 1.1, define el código de estado
301
(movido permanentemente) y
302
(encontrado), que permite que el método de solicitud se cambie de
POST
a
GET
.
Esta especificación también define el código de estado
307
(redirección temporal) que no permite que el método de solicitud se cambie de
POST
a
GET
.
Ver más detalles a continuación:
El código de estado
301
(movido permanentemente) indica que al recurso objetivo se le ha asignado un nuevo URI permanente y que cualquier referencia futura a este recurso debería usar uno de los URI adjuntos. [...]Nota: Por razones históricas, un agente de usuario PUEDE cambiar el método de
POST
dePOST
aGET
para la solicitud posterior. Si este comportamiento no es deseado, se puede utilizar el código de estado307
(redirección temporal).
El código de estado
302
(encontrado) indica que el recurso de destino reside temporalmente bajo un URI diferente. Debido a que la redirección puede ser alterada ocasionalmente, el cliente debe continuar usando el URI de solicitud efectivo para futuras solicitudes. [...]Nota: Por razones históricas, un agente de usuario PUEDE cambiar el método de
POST
dePOST
aGET
para la solicitud posterior. Si este comportamiento no es deseado, se puede utilizar el código de estado307
(redirección temporal).
El código de estado
307
(redirección temporal) indica que el recurso de destino reside temporalmente bajo un URI diferente y el agente de usuario NO DEBE cambiar el método de solicitud si realiza una redirección automática a ese URI. Dado que la redirección puede cambiar con el tiempo, el cliente debe continuar utilizando el URI de solicitud efectiva original para futuras solicitudes. [...]Nota: Este código de estado es similar al
302
(encontrado), excepto que no permite cambiar el método dePOST
dePOST
aGET
. Esta especificación no define una contraparte equivalente para301
(movido permanentemente) ( RFC 7238 , sin embargo, define el código de estado308
(redireccionamiento permanente) para este propósito).
La necesidad de
308
El
RFC 7238
se ha creado para definir el código de estado
tools.ietf.org/html/rfc7538
(redirección permanente), que es similar al
301
(movido permanentemente) pero no permite que el método de solicitud se cambie de
POST
a
GET
.
El código de estado tools.ietf.org/html/rfc7538 ahora está definido por el tools.ietf.org/html/rfc7538 (que obsoleto el RFC 7238 ).
El código de estado
308
(redirección permanente) indica que al recurso de destino se le ha asignado un nuevo URI permanente y que cualquier referencia futura a este recurso debería usar uno de los URI adjuntos. Los clientes con capacidades de edición de enlaces deben volver a vincular automáticamente las referencias al URI de solicitud efectivo a una o más de las nuevas referencias enviadas por el servidor, cuando sea posible. [...]Nota: Este código de estado es similar al
301
(movido permanentemente), excepto que no permite cambiar el método dePOST
dePOST
aGET
.
Se tenemos lo siguiente:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn''t allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Elegir el código de estado más adecuado
Michael Kropat
reunió un
conjunto de cuadros de decisiones
que ayudan a determinar el mejor código de estado para cada situación.
Consulte lo siguiente para
2xx
códigos de estado
2xx
y
3xx
:
¿Cuál es la diferencia entre los códigos de estado HTTP
301
y
308
?
-
301
(Movido permanentemente): esta y todas las solicitudes futuras deben dirigirse al URI dado. -
308
(Redirección permanente): la solicitud y todas las solicitudes futuras deben repetirse utilizando otro URI.
Parecen ser similares.