2010-03-31 9 views
8

Tengo un sitio que muestra principalmente una lista paginada de contenido (artículos, elementos de datos, etc.) y estoy pensando en devolver HTTP 404 cuando el usuario navega fuera del rango de la lista disponible (por ejemplo, a mano url editado)¿El HTTP 404 es apropiado para el número de página fuera de rango en el contenido paginado?

Algunos sitios solo muestran "Sin resultados/Número de página fuera de rango" y algunos devuelven el estado de HTTP 404.

¿Cuál es su opinión sobre eso, y por qué?

ACTUALIZACIÓN

No y la respuesta de la API. Esta pregunta se refiere a las páginas vistas por el usuario que, entre otras cosas, muestran una lista/tabla en el área principal.

ACTUALIZACIÓN

ejemplo Borderline: página 1'st es una página de fuera de rango, porque no existen datos para la lista se muestra todavía.

¿Debo mostrar 404? Si fuera el resultado de la búsqueda, no me importaría ... pero la simple visualización de la lista paginada/tabla de datos parece dura.

Ejemplo: el primer día de ejecución de desbordamiento de pila y todavía no hay preguntas, aparece la página de inicio y ¿qué, 404 o solo un 200 con el mensaje "No hay preguntas todavía"?

Respuesta

0

Yo iría por 404 cuando el número de página está! = 1, sin importar donde se coloca el número de página en la (cadena de consulta o en la trayectoria) URI, e ir a por el soft 404 cuando no hay resultados, pero la página el número es exactamente 1 o no se le dio.

¿Por qué?

Conjunto de resultados La página 1 existe como página de inicio para el conjunto de resultados (even search results -- see Google here), por lo que se encuentra y existe (si no muestra el conjunto de resultados) para informarle que no hay datos en el conjunto de resultados.

Luego no se encuentra ningún conjunto de resultados fuera del rango del conjunto de resultados, no hay un punto significativo para que existan estas páginas/recursos, por lo tanto 404. Si uno argumenta que existen para transmitir un mensaje "No MÁS datos", por lo tanto, son significativos, por lo tanto, deben ser indexados: ¡pesadilla del motor de búsqueda!

HTTP 400 Bad Request es una mala elección porque sugeriría que la solicitud nunca puede ser correcta.

HTTP 400 Bad Request - Petición podría no puede ser entendido por el servidor debido a sintaxis incorrecta. El cliente es conveniente NO repetir la solicitud sin modificaciones

404 Not Found es vago sobre este caso, y en este caso se puede interpretar de la OMI en ambos sentidos

El servidor no ha encontrado nada coincidente el URI de solicitud. No indica si la condición es temporal o permanente. El 410 de estado (Atrás) código debe utilizarse si el servidor sabe, a través de algún mecanismo de configurable internamente, que es un recurso de edad permanentemente disponible y no tiene ninguna dirección de reenvío . Este código de estado se usa comúnmente cuando el servidor no desea revelar exactamente por qué la solicitud ha sido rechazada o cuando no hay otra respuesta aplicable.

1

Sí, si se trata de una API, ya que los errores 4xx indican una falta temporal de recursos, que pueden existir más adelante. Si no es una API, sugeriría que cualquier página 404 sea un poco más fácil de usar (por ejemplo, como http://www.didcot.com/forum/?read=1234567).

-1

Bien, no devolvería 404 porque la página en general se encuentra (como display.php? Page = 62).

En mi opinión, la mejor solución es decirle al usuario "Número de página fuera de rango/no disponible" y un enlace a la última página existente o un enlace history.back().

El código HTTP 400 puede ser lo que está buscando.

+1

Tenga en cuenta que los parámetros de consulta son parte de la URI y el 404 se aplica a todo el URI, no solo a la parte de ruta. Además, 400 es probablemente una mala elección aquí. –

+0

@Geoff está justo aquí en todos los puntos –

6

Yo diría que esto es absolutamente un caso para un 404. Es una solicitud de un recurso que no existe. Si la página/script general utilizada para mostrar los elementos es irrelevante.

+0

Ejemplo de borde, 1ª página y no hay datos en la lista. ¿Debo mostrar 404? Para los resultados de búsqueda no me importaría ... pero en este caso es duro. Ejemplo: el primer día de Existencia de desbordamiento de pila y aún no hay preguntas, aparece la página de inicio y ¿qué, 404 o solo un 200 con el mensaje "Sin preguntas todavía"? –

+0

@Woo Yo diría que eso depende un poco de tu configuración. ¿Qué tipo de URL están en juego? ¿Qué es lo que parecen? ¿Qué tipo de listas consultan? –

+0

Actualmente estoy enumerando los profesores adjuntos a una entrada shool, y URL como, por ejemplo./Escuela/XXX/Maestros /? Página = Y –

0

Si es su cadena de consulta la que indica qué página devolver, es posible que 404 no sea apropiado. Si no está en su cadena de consulta, entonces el documento no existe y 404 es definitivamente apropiado.

+0

Entonces la URL es como/School/XXX/Teachers /? Page = Y - luego devuelve soft 404, si/School/XXX/Teachers/Page/Y/- luego devuelve 404. ¿Correcto? –

1

- cuando el usuario navega fuera del rango de la lista disponible.

No debe proporcionar un enlace fuera de rango. En la última página de resultados, no muestres un enlace 'siguiente'. Bueno, supongo que no estás haciendo eso. Pero alguien más puede vincular a su página fuera de rango, lo que nos trae una pregunta interesante:

Como ya se dijo, se debe devolver 404 para el recurso inexistente. La verdadera pregunta es: "¿Qué hace un recurso?"

Yo diría que si el número de resultados varía a menudo (por ejemplo, diariamente) y también puede disminuir (así que la página de resultado # 9 puede existir hoy pero no necesariamente mañana), la funcionalidad de listado/búsqueda en su conjunto hace un recurso , no una sola página de resultados, que simplemente representa un estado particular del recurso.

En cambio, si el número de resultados solo puede aumentar, es decir, los objetos enumerados no son volátiles sino permanentes, tiene sentido mostrar 404 para páginas fuera de rango, ya que la página de resultados existente es más como un recurso, es decir, un documento destinado a permanecer allí.

En general, creo que no hay una respuesta universal, pero la decisión depende del webmaster, porque no existe una especificación lo suficientemente clara. Uno debe recordar que los códigos de estado se devuelven principalmente para clientes no humanos (robots, motores de búsqueda) que no pueden entender el contenido de la página, por lo que en la práctica esto es principalmente un problema de SEO.

Solo por mencionar, fuera del rango de las páginas de resultados se dan un estado 200 por Google: (. No es que Google es un dios)

$ curl -s --head -A 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; fi-fi) AppleWebKit/531.21.11 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10' 'http://www.google.com/search?q=stackoverflow&start=1000' | grep ^HTTP 
HTTP/1.1 200 OK 
+0

Estoy de acuerdo en que es una preferencia, y los robots están aquí, el factor decisivo, es que estoy a favor de 404. Pero como no debería haber enlaces fuera de rango, el 404 suave no dañaría ningún robot. De nuevo, si el usuario está editando manualmente la URL, no tenemos que actuar con suavidad :) ... ehhh, tiro una moneda. –

Cuestiones relacionadas