¿Cómo usar el encabezado HTTP Accept?

El encabezado HTTP Accept indica al servidor los tipos de contenido que el cliente acepta. Aprende a usarlo para la negociación de contenido y ejemplos.

Daniel Costa

Daniel Costa

9 May 2025

¿Cómo usar el encabezado HTTP Accept?

Si eres un desarrollador web, probablemente sepas lo importante que es comunicarse eficazmente con los servidores web que alojan tus aplicaciones. Necesitas enviar las solicitudes correctas y recibir las respuestas correctas, para que tus aplicaciones puedan funcionar correctamente y proporcionar una gran experiencia de usuario. Pero, ¿sabes cómo usar la cabecera HTTP accept para optimizar esta comunicación y hacer que tus aplicaciones sean más flexibles y eficientes? Si no es así, no te preocupes.

En esta entrada de blog, te enseñaré todo lo que necesitas saber sobre la cabecera HTTP accept y cómo usar herramientas como Apidog para probar y depurar tus solicitudes y respuestas HTTP.

button

¿Qué es la cabecera HTTP Accept y cómo funciona?

La cabecera HTTP accept es una parte del mensaje de solicitud. Es una forma de que el cliente le diga al servidor qué tipo de contenido puede aceptar y procesar. El contenido puede ser cualquier cosa que el servidor pueda proporcionar, como HTML, XML, JSON, imágenes, vídeos, audio, etc. La cabecera HTTP accept tiene el siguiente formato:

Accept: tipo-de-medio, tipo-de-medio, ...

El tipo-de-medio es una cadena que especifica el tipo y el subtipo del contenido, como text/html, application/json, image/jpeg, etc. También puedes usar comodines para indicar cualquier tipo o subtipo, como */*, text/*, image/*, etc. También puedes usar parámetros para proporcionar más detalles sobre el contenido, como la calidad, el idioma, la codificación, etc. Por ejemplo, text/html;q=0.8,en-US significa que el cliente puede aceptar documentos HTML con una calidad de 0.8 (de 1) y en inglés estadounidense.

Puedes especificar varios tipos de medio en la cabecera HTTP accept, separados por comas. El orden de los tipos de medio indica la preferencia del cliente. El primer tipo de medio es el más preferido, el segundo es el segundo más preferido, y así sucesivamente. Por ejemplo, Accept: text/html,application/json,image/png significa que el cliente prefiere documentos HTML, luego datos JSON y luego imágenes PNG.

¿Por qué es importante la cabecera HTTP Accept?

La cabecera HTTP accept es una forma poderosa de negociar el contenido entre el cliente y el servidor. Permite al cliente solicitar diferentes tipos de contenido en función de sus capacidades y preferencias, y permite al servidor entregar el mejor contenido posible para el cliente, en función de su disponibilidad y compatibilidad. Esto puede mejorar el rendimiento, la eficiencia y la experiencia del usuario tanto del cliente como del servidor.

La cabecera HTTP accept es importante porque ayuda al servidor a entregar el mejor contenido posible para el cliente, en función de sus capacidades y preferencias. También ayuda al servidor a evitar el envío de datos innecesarios o incompatibles que el cliente no puede usar o mostrar. Esto puede mejorar el rendimiento, la eficiencia y la experiencia del usuario tanto del cliente como del servidor.

Cómo usar la cabecera HTTP Accept para solicitar diferentes tipos de contenido del servidor

Para escribir la cabecera HTTP accept en tu mensaje de solicitud, necesitas usar una herramienta o una biblioteca que te permita enviar solicitudes HTTP. Hay muchas herramientas y bibliotecas disponibles para diferentes lenguajes y plataformas, como curl, Apidog, Axios, Fetch, etc. Para este ejemplo, usaré curl, que es una herramienta de línea de comandos que puedes usar para enviar solicitudes HTTP y recibir respuestas HTTP.

Para usar curl, necesitas escribir el siguiente comando en tu terminal:

curl -H "Accept: tipo-de-medio, tipo-de-medio, ..." URL

La opción -H te permite agregar una cabecera a tu solicitud. Accept: tipo-de-medio, tipo-de-medio, ... es la cabecera HTTP accept que quieres enviar. La URL es la dirección del servidor del que quieres solicitar datos. Por ejemplo, si quieres solicitar documentos HTML de https://example.com, puedes escribir:

curl -H "Accept: text/html" https://example.com

Esto enviará una solicitud a https://example.com con la cabecera Accept: text/html, lo que significa que solo puedes aceptar documentos HTML como respuesta.

Para leer el mensaje de respuesta del servidor, necesitas mirar el código de estado, la cabecera content-type y el cuerpo del mensaje.

Por ejemplo, si envías la solicitud curl -H "Accept: text/html" https://example.com, podrías recibir la siguiente respuesta:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8

<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</body>
</html>

El código de estado es 200, lo que significa que la solicitud fue exitosa. La cabecera content-type es text/html; charset=UTF-8, lo que significa que el servidor devolvió un documento HTML con codificación UTF-8.

Puedes usar la cabecera HTTP accept para solicitar diferentes tipos de contenido del servidor cambiando el tipo de medio en tu solicitud. Por ejemplo, si quieres solicitar datos JSON de https://example.com, puedes escribir:

curl -H "Accept: application/json" https://example.com

Esto enviará una solicitud a https://example.com con la cabecera Accept: application/json, lo que significa que solo puedes aceptar datos JSON como respuesta. Podrías recibir la siguiente respuesta:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "domain": "example.com",
  "purpose": "illustrative examples in documents",
  "link": "https://www.iana.org/domains/example"
}

El código de estado es 200, lo que significa que la solicitud fue exitosa. La cabecera content-type es application/json, lo que significa que el servidor devolvió datos JSON. El cuerpo del mensaje son los datos JSON en sí, que puedes ver en tu navegador o en el sitio web de Apidog.

También puedes solicitar varios tipos de contenido del servidor especificando más de un tipo de medio en tu solicitud. Por ejemplo, si quieres solicitar documentos HTML o datos JSON de https://example.com, puedes escribir:

curl -H "Accept: text/html,application/json" https://example.com

Cómo manejar diferentes tipos de respuestas del servidor basadas en la cabecera HTTP Accept

A veces, es posible que el servidor no pueda devolver el tipo exacto de contenido que solicitaste con la cabecera HTTP accept. Esto puede suceder por varias razones, tales como:

Hay muchos códigos de estado posibles que el servidor puede devolver, pero aquí hay algunos de los más comunes que puedes encontrar al usar la cabecera HTTP accept:

La cabecera content-type y el cuerpo del mensaje de respuesta también pueden variar según el código de estado y el tipo de medio que el servidor devolvió. Puedes usar herramientas como Apidog para ver la cabecera content-type y el cuerpo del mensaje de una manera fácil de usar.

¿Cómo usar Apidog para probar y depurar mi cabecera HTTP accept?

Apidog es una herramienta basada en la web que te ayuda a probar, depurar y documentar tus API de forma gratuita.

button

Para usar Apidog para probar y depurar tu cabecera HTTP accept, debes seguir estos pasos:

Apidog
Apidog

Buenas prácticas y consejos para usar la cabecera HTTP accept.

La cabecera HTTP accept es una cabecera de solicitud que indica qué tipos de contenido, expresados como tipos MIME, el cliente puede entender. El servidor usa la negociación de contenido para seleccionar una de las propuestas e informa al cliente de la elección con la cabecera de respuesta Content-Type. Aquí hay algunas buenas prácticas y consejos para usar la cabecera HTTP accept en tus proyectos de desarrollo web:

Conclusión

En esta entrada, he explicado la importancia de la cabecera HTTP Accept y cómo se puede usar para negociar el tipo de contenido entre el cliente y el servidor. También he mostrado cómo establecer la cabecera Accept en diferentes escenarios.

Al usar la cabecera Accept, podemos asegurarnos de que el servidor responda con el formato más apropiado para nuestras necesidades, y evitar conversiones o errores innecesarios. La cabecera Accept es una de las muchas cabeceras HTTP que pueden ayudarnos a construir aplicaciones web más robustas y eficientes.

button

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs

¿Cómo usar el encabezado HTTP Accept?