Principal
/
Ayuda con Páginas Web
/
Estadísticas y errores
/
¿Qué es el código de estado 300 Opciones múltiples?

¿Qué es el código de estado 300 Opciones múltiples?

Todos conocemos los códigos de estado de respuesta HTTP 301 “Redirección permanente” y 302 “Redirección temporal”, pero ¿has oído hablar del código de estado 300? No te preocupes si no lo has hecho, no estás solo. No es tan común como otros códigos de estado de respuesta HTTP 3XX.

El código de estado 300 tiene características únicas que lo hacen útil en algunos casos específicos.

En esta guía, exploraremos el código de estado 300, sus aplicaciones y los problemas más comunes asociados con él.

El código de estado 300 Multiple Choices indica que una solicitud tiene múltiples respuestas posibles, y el cliente debe elegir una para proceder. Esto se usa a menudo para la negociación de contenido, cómo seleccionar diferentes formatos o idiomas.

¿Cómo funciona el código de estado 300?

Así es como se ve una interacción cliente-servidor típica que involucra un código de respuesta 300:

  1. Un cliente solicita un recurso – un cliente (navegador, aplicación) envía una solicitud HTTP (GET, POST, etc.) a un servidor web para un recurso específico.
  2. El servidor web procesa la solicitud – el servidor web recibe la solicitud y determina que el recurso tiene múltiples versiones. Estas pueden ser páginas en diferentes idiomas, formatos (XML, JSON, etc.) o ubicaciones.
  3. El servidor web responde con el código de respuesta HTTP 300 “Opciones múltiples” – el servidor web envía el código de respuesta 300 al cliente. Esta respuesta contiene una lista de opciones disponibles para que el cliente elija. La lista se puede presentar en el cuerpo de la solicitud o en el encabezado “Location“.
    300 Código de respuesta
  4. El cliente hace una elección y envía una nueva solicitud – el cliente debe elegir una de las opciones presentadas y enviar otra solicitud HTTP informando al servidor de la elección. Alternativamente, la aplicación cliente puede configurarse para hacer una selección automática basada en criterios predefinidos.
  5. El servidor web procesa la solicitud posterior – el servidor web procesa la nueva solicitud. Responde con el recurso correspondiente a la elección realizada por el cliente. Si tiene éxito, la nueva respuesta es 200 “OK”.
    200 Código de respuesta HTTP

Dependiendo del sitio web al que se envía la solicitud HTTP, estas opciones se presentan como URI, Alternates o Link HTTP headers (el método más utilizado).

Si una de las opciones es preferida, el servidor web debería generar un encabezado HTTP de ubicación especificando la URI de la versión preferida del recurso.

A menos que el método de solicitud HTTP sea HEAD, como una solicitud POST o GET, el código de respuesta 300 tiene un cuerpo de mensaje que contiene una lista de las opciones disponibles.

A continuación se muestra un ejemplo de tal respuesta.

HTTP/1.1 300 Multiple Choices
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
    <title>300 Multiple Choices</title>
</head>
<body>
    <h1>Opciones múltiples</h1>
    <p>El recurso solicitado tiene múltiples representaciones. Por favor, selecciona una de las siguientes opciones:</p>
    <ul>
        <li><a href="http://ejemplo.com/recurso/en">Inglés</a></li>
        <li><a href="http://ejemplo.com/recurso/fr">Francés</a></li>
        <li><a href="http://ejemplo.com/recurso/es">Español</a></li>
    </ul>
</body>
</html>

El código de respuesta 300 es cacheable. Esto significa que los clientes (navegadores o agentes de usuario) pueden guardar la respuesta y cargarla desde su almacenamiento para cualquier solicitud futura, aumentando el rendimiento. El servidor web comprueba la fecha de la última modificación de los campos del encabezado de la solicitud enviada desde un cliente que ya almacenó en caché el recurso, y si coincide con la última versión del recurso, devuelve un código de respuesta 304 “No modificado”.

En general, el código de estado 300 no se usa mucho ya que no hay una forma estandarizada de presentar las opciones.

Características clave de 300 Opciones múltiples

El código de respuesta 300 tiene varias características destacadas que lo distinguen de otros códigos de estado HTTP.

Opciones Múltiples

El servidor presenta varias opciones para que el cliente elija. La forma en que se presentan estas opciones depende del servidor o sitio web.
Podría ser una lista numerada o con viñetas en el cuerpo de la respuesta 300 o una lista en el encabezado “Ubicación”.

Sin redirección automática

A diferencia de otros códigos 3xx, 300 no redirige automáticamente al usuario a una ubicación específica. En su lugar, el visitante debe elegir la ubicación del recurso deseado.
El servidor web no entregará contenido hasta que el cliente haga una elección explícita. Si se trata de una selección manual o automática hecha por una aplicación, es cosa del cliente.

Interacción del usuario requerida

Con el código de respuesta HTTP 300, el servidor de origen requiere que el usuario (user agent) seleccione una de las opciones disponibles.

El servidor no puede proceder hasta que se seleccione una de las opciones.

¿Cuándo se usa 300 Opciones múltiples?

Aunque rara vez se usa, el código de estado 300 posee características distintas que lo hacen útil en casos específicos. Aquí tienes los más comunes.

Negociar múltiples formatos

Cuando un recurso está disponible en múltiples formatos (por ejemplo, diferentes idiomas y tipos de medios), el servidor de origen permite a los usuarios elegir sus preferencias utilizando un código de respuesta 300.

Por ejemplo, puedes enumerar varios formatos opcionales (MPEG, MP4, etc) para el mismo video que los clientes pueden elegir.

Seleccionar versiones de recursos

Si un recurso tiene múltiples versiones, como versiones API, el código de estado 300 indica las opciones disponibles para los usuarios.

Por ejemplo, un servidor puede ofrecer un documento en diferentes idiomas o formatos, como HTML, PDF o texto sin formato. El cliente puede seleccionar la versión deseada en función de las preferencias o capacidades del usuario. Este mecanismo permite una entrega de contenido más flexible, asegurando que el cliente recibe el recurso más apropiado sin realizar múltiples solicitudes posteriores.

Recursos alternativos

Cuando un recurso tiene múltiples ubicaciones alternativas o representaciones, el servidor puede proporcionar estas opciones al cliente.

Digamos que es posible que desees mostrar contenido diferente para diferentes regiones. Antes de que procedan a tu sitio web, puedes solicitar a los visitantes que seleccionen su región de un menú con un código de respuesta 300.

Consejos para administrar un código de estado 300

El código de respuesta 300 no es tan popular como otros tipos de redireccionamiento, por lo que los usuarios no están tan familiarizados con él. Por lo tanto, debes tener mucho cuidado y diligencia al emplearlo para asegurarte de que el código de estado HTTP 300 no los confunda.

A continuación, encontrarás algunos consejos útiles para manejar un código de respuesta 300 “Opciones múltiples”.

  • Mantener documentación claraDocumenta las diferentes opciones disponibles y los criterios para cada una. Esto ayudará tanto a los desarrolladores como a los usuarios a entender mejor las opciones cuando se encuentren con el código 300 HTTP.
  • Mantener la consistencia en la nomenclatura – Usa una convención de nomenclatura consistente para las diferentes versiones del recurso. Esto ayudará a los usuarios a tener claro lo que están eligiendo.
  • Gestión del lado del cliente – Asegúrate de que las aplicaciones cliente, como navegadores o aplicaciones móviles, pueden gestionar correctamente respuestas 300.
  • Actualizaciones regularesMantén actualizada la lista de opciones disponibles . Si una representación o versión de un recurso se vuelve obsoleta, elimínala de las opciones para evitar enlaces rotos.
  • Proporcionar instrucciones claras – Facilitar una interfaz intuitiva y fácil de usar para tu sitio web o aplicación web. Incluye texto descriptivo e instrucciones claras para cada elección. De esta manera, evitarás frustrar a tus visitantes, quienes tendrán una comprensión clara de las opciones presentadas. Además, unas instrucciones claras ayudarán a los motores de búsqueda a rastrear correctamente tu sitio.
  • Realizar pruebas de navegador/dispositivo cruzadoLa compatibilidad multidispositivo/plataforma es esencial hoy en día. Prueba regularmente tu sitio web o aplicación en diferentes dispositivos o navegadores para asegurarte de que pueden manejar correctamente las opciones dadas en el código de respuesta 300.
  • Monitoriza el usoMantén un registro de la frecuencia con la que se selecciona cada opción . Puedes usar esta información para establecer una ubicación de recurso predeterminada que se ajuste a las preferencias de tus usuarios. Puedes usar varias herramientas para monitorizar qué páginas generan más tráfico. Muchos proveedores de hosting web ofrecen herramientas internas de análisis de tráfico que desglosan el tráfico por visitas a la página. Los usuarios de SiteGround pueden monitorizar su tráfico desde Site Tools > Estadísticas > Tráfico.
    Herramienta de tráfico en Site Tools


    Si tu hosting web no proporciona tales herramientas, puedes optar por servicios de monitorización de terceros (como Google Analytics o Ahrefs) o plugins (para WordPress, Joomla, etc.).

Problemas comunes

Al igual que cualquier otro tipo de redirección, el código de estado 300 puede fallar si no se usa correctamente. Puede hacer que un sitio web produzca una respuesta inválida que muestre un código de error o una página en blanco. Estas son algunas de las causas de un código de respuesta 300 problemático.

Opciones mal configuradas

Configurar incorrectamente las opciones disponibles presentadas por un código HTTP 300 puede confundir a los usuarios y llevar a errores. Tales desconfiguraciones podrían ser:

  • Enlaces rotos – Las URL incompletas no abrirán la página designada y confundirán a los visitantes, lo que empeorará la experiencia del usuario.
  • Content-Type incorrecto – Content-Type es un encabezado de representación diseñado para informar a los clientes del tipo de medio del recurso solicitado. Si el encabezado Content-Type no coincide con el tipo real de un recurso, la solicitud posterior del cliente puede no ejecutar el recurso de destino correctamente.
  • Sin mecanismo fallback – El código de respuesta 300 no incluye una opción predeterminada o un mecanismo fallback en caso de que el usuario no pueda elegir o si el cliente no es compatible con códigos de respuesta 300.

Nombramiento inconsistente de las opciones

Los enlaces que no siguen una convención de nomenclatura consistente hacen que las elecciones no sean claras. Por ejemplo, un enlace puede llamarse “resource/en” en un lugar y “resource /english” en otro.

Como resultado, es más probable que los visitantes abandonen tu sitio web en lugar de seguir con las opciones.

Guía de usuario poco clara

Descripciones o instrucciones poco claras pueden confundir a los clientes sobre las opciones dadas. Además, pueden evitar que los motores de búsqueda rastreen correctamente tu sitio web. Por lo tanto, la experiencia del usuario y la puntuación SEO pueden verse afectadas.

Incompatibilidad de navegador

Algunos navegadores pueden no manejar las respuestas 300 correctamente, lo que lleva a la funcionalidad rota del sitio web o la aplicación con la que se están comunicando. Por ejemplo, estas incompatibilidades pueden surgir cuando la entidad de solicitud contiene un campo de encabezado de solicitud Expect, que especifica la respuesta esperada por el cliente.

Si el código de estado 300 no es una respuesta solicitada, es posible que el cliente no pueda procesarlo correctamente.

¿Cómo solucionar problemas con el código 300 HTTP mal configurado?

Revisar la configuración del servidor

Asegúrate de que tu servidor web especifica correctamente las opciones múltiples presentadas en el código de respuesta 300. Cada opción debe ser una URL válida que apunte a una versión diferente del recurso de destino.

Validar los encabezados del código de respuesta 300

Revisa los campos del encabezado de la respuesta HTTP, como el encabezado Ubicación. Debe contener las URLs correctas para las opciones disponibles. Los encabezados incorrectos pueden llevar a enlaces rotos y frustración del usuario.

Inspeccionar los registros de errores

Habilita el registro de errores en tu sitio web para inspeccionar los problemas registrados mientras los visitantes acceden a tu sitio web. Estos registros pueden ayudarte a identificar el origen de muchos errores del lado del cliente (como un mensaje de solicitud no válido, demasiadas solicitudes, etc.) o errores del lado del servidor (como recursos del servidor insuficientes, restricciones de acceso, etc.).

Estos registros también pueden ayudarte a identificar problemas relacionados con el código de respuesta 300. Los usuarios de SiteGround tienen registros de error detallados y fáciles de encontrar a su disposición en su Site Tools > Estadísticas > Registro de errores.

Registro de errores en Site Tools

Implementar un mecanismo alternativo

Si los clientes no pueden manejar el código de estado 300, implementa un mecanismo alternativo que redirija a una opción predeterminada. Esto asegura que los usuarios puedan acceder al recurso incluso si no hacen una selección.

En resumen

El código de estado 300 es una respuesta del servidor que solicita a los clientes seleccionar entre múltiples opciones para proceder. Esto puede ser bastante útil, especialmente cuando tienes varias versiones de un recurso (página, formatos de archivo) entre las que los clientes pueden elegir.

Sin embargo, también tiene algunas limitaciones, por lo que no es adecuado en algunos escenarios. Si decides incorporarlo a tu sitio web o aplicación, debes considerar sus pros y contras. Esperamos que puedas tomar una decisión informada después de leer este artículo.

Comparte este artículo