¿Cuál es la diferencia entre estos encabezados?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
¿Cuál es mejor y por qué?
Por favor, no digas que son idénticos: si fueran idénticos, no habría habido tres. Sé que ambos funcionan, pero me gustaría saber la diferencia.
javascript
http-headers
content-type
Obmerk Kronen
fuente
fuente
script
eltype
atributo de una etiqueta cuandonosniff
se especifica la directiva. developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…Respuestas:
text/javascript
es obsoleto yapplication/x-javascript
fue experimental (de ahí elx-
prefijo) durante un período de transición hasta que seapplication/javascript
pudo estandarizar.Debe utilizar
application/javascript
. Esto está documentado en el RFC .En lo que respecta a los navegadores, no hay diferencia (al menos en los encabezados HTTP). Esto fue solo un cambio para que los grupos de tipos
text/*
yapplication/*
MIME tuvieran un significado coherente siempre que fuera posible. (Lostext/*
tipos MIME están destinados a contenido legible por humanos, JavaScript no está diseñado para transmitir directamente el significado a los humanos).Tenga
application/javascript
en cuenta que el uso en eltype
atributo de un elemento de secuencia de comandos hará que la secuencia de comandos se ignore (ya que se encuentra en un idioma desconocido) en algunos navegadores más antiguos. Continúe usándolotext/javascript
allí u omita el atributo por completo (lo cual está permitido en HTML 5).Esto no es un problema en los encabezados HTTP ya que los navegadores de manera universal (hasta donde yo sé) ignoran por completo el tipo de contenido HTTP de los scripts o son lo suficientemente modernos como para reconocerlos
application/javascript
.fuente
type
atributo en un<script>
elemento. No puede omitir elContent-Type
encabezado HTTP ... nunca (si no lo especifica en PHP, PHP tendrá el valor predeterminadotext/html
incorrecto).text/javascript
está obsoleto yapplication/x-javascript
era experimental). Peor aún, dejó el comienzo de la respuesta incoherente, con un bloque que decía quetext/javascript
simplemente colgaba irrelevantemente en la parte superior de la respuesta sin ninguna razón obvia.@echo off
for /r . %%X in (*.js) do (
svn propset svn:mime-type text/javascript "%%X"
)
que cuando se ejecute, cambiará el tipo mime de todos los archivos JS en su repositorio a texto / javascript. Luego debe enviar los archivos JS a SVN con el nuevo tipo mime.los tipos mime que comienzan con
x-
no están estandarizados. En el caso de JavaScript, está un poco desactualizado. Adicional el segundo fragmento de códigorequiere
short_open_tags
estar habilitado. Deberías evitarlo.Sin embargo, el tipo mime completamente correcto para javascript es
http://www.iana.org/assignments/media-types/application/index.html
fuente
De acuerdo con RFC 4329, el tipo MIME correcto para JavaScript debe ser
application/javascript
. Sin embargo, las versiones anteriores de IE se ahogan en esto ya que esperantext/javascript
.fuente
type
dice el atributo HTML (y en los borradores HTML 5 ese atributo puede omitirse para JavaScript).Use type = "application / javascript"
En el caso de HTML5, el atributo type es obsoleto, puede eliminarlo. Nota: que por defecto es "text / javascript" de acuerdo con w3.org, por lo que sugeriría agregar "application / javascript" en lugar de eliminarlo.
Use "application / javascript", porque "text / javascript" está obsoleto :
x-javascript es experimental, no lo use.
fuente