2012-05-08 10 views
12

me han hecho una petición HTTP usando Firefox.Now el encabezado de la solicitud muestra lo siguiente:¿Cuál es el propósito de los valores "q" en el encabezado de solicitud "Aceptar" de HTTP?

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

Pero la curiosidad de saber lo que es q=0.9,*/*;q=0.8

+1

Especifica la * q * calidad asociada con codificaciones particulares. Ver el [estándar] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). –

+0

posible duplicado de [¿Cuál es el q = 0.01 $ .getJSON agrega al encabezado de solicitud?] (Http://stackoverflow.com/questions/9820195/what-is-the-q-0-01-getjson-adds- to-the-request-header) – Jon

+1

posible duplicado de [¿Qué es q = 0.5 en Aceptar \ * encabezados HTTP?] (http://stackoverflow.com/questions/8552927/what-is-q-0-5-in -accept-http-headers) – Sphinxxx

Respuesta

16

Cada medios de gama puede ir seguida de una o más aceptables params, comenzando con el parámetro "q" para indicar un factor de calidad relativo. El primer parámetro "q" (si existe) separa el (los) parámetro (s) de rango de medios de los parámetros de aceptación. Los factores de calidad permiten que el agente de usuario o el usuario para indicar el grado relativo de preferencia por que los medios de rango, usando la escala de QVALUE de 0 a 1. El valor predeterminado es q = 1

La información está disponible here

Una buena explicación se puede encontrar here también.

10

La lista de encabezado Accept primero se divide en , y luego en ; para ver los parámetros adicionales por entrada. Entonces, la lista en su ejemplo se divide en text/html, application/xhtml+xml, application/xml;q=0.9 y */*;q=0.8. El parámetro q= en cada entrada indica al servidor el grado de preferencia para ese tipo de medio. Su valor máximo predeterminado es 1, si falta (como en las primeras 2 entradas). La última entrada de */*;q=0.8 indica al servidor que eventualmente cualquier tipo de contenido sería aceptable pero sería menos preferible que los otros listados. De lo contrario, el servidor podría decidir no enviar ningún contenido, porque el cliente no lo "aceptaría" de todos modos.

1

Para añadir a @ respuesta correcta de Robin479, la cabecera de aceptar en la pregunta es equivalente a,

aceptar:
text/html; q = 1,
application/xhtml + xml; q = 1,
application/xml; q = 0,9,
*/*; q = 0,8

NOTA: Los nuevos caracteres de línea son sólo para una mejor legibilidad.

0

El valor de Q siempre es un número de cero a uno y representa el valor de calidad relativo. El valor Q predeterminado es 1.0.

Por lo tanto, algo con Q de valor 0.9 es ligeramente más preferido que algo con un valor de Q de 0.6.

Cuestiones relacionadas