2012-08-28 6 views

Respuesta

5

Sí. ¡Debería enviar una entidad o redirigir!

(Lo siento, las viejas bromas de programación tienen que salir a veces).

Realmente depende de si puede darle algo a GET de manera significativa, que tiene sentido estar solo.

Ejemplo: compro algo, obtengo una página que dice "gracias, yadda yadda número de pedido, recibo, yadda".

Debería ser un 303 Ver Otro redireccionamiento, por lo que OBTENGO una página con esa información. Puedo marcarlo para más tarde, actualizar refresca el GET. Días felices.

Hay momentos en los que, cuando solo tiene sentido dar una respuesta inmediata, y si se actualizan, entonces repetir la operación real, y los marcadores no tienen sentido. Eso no debería ser una redirección.

En su mayor parte, pretenden tener el menor número posible de estos últimos. Aunque es más útil si tiene que devolverlos al formulario porque algo falló: nadie quiere un marcador de un formulario fallido, quiere arreglar lo que debe arreglarse y seguir con él.

Tenga en cuenta que muchos sistemas del lado del servidor (ASP, etc.) usan 302 cuando se redirige de un POST, lo que significa estrictamente que POSTS de nuevo, pero casi ningún navegador lo hace. En su lugar, ser más claro:

  1. Si desea redirigir el POST de nuevo, por lo que el POST va a un URI diferente - Bueno, no, que tiene otros problemas - pero si realmente tiene que, a continuación, 307
  2. Si desea hacer un seguimiento de un POST con un GET a algo que explique el resultado, el 303. Significa inequívocamente "ahora haga un GET".
+0

Grandes detalles y, en general, buena información. –

4

Sí, es una buena práctica usar redirect after POST para evitar esto.

+0

presentación de formularios duplicados se produciría si el usuario hace clic en el botón volver atrás en el navegador. – towry

Cuestiones relacionadas