Jaka jest różnica między tymi nagłówkami?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
Który jest najlepszy i dlaczego?
Nie mów, że są identyczne - gdyby były identyczne, nie byłoby ich trzech. Wiem, że obie działają - ale chciałbym poznać różnicę.
javascript
http-headers
content-type
Obmerk Kronen
źródło
źródło
script
znacznika,type
gdynosniff
określona jest dyrektywa. developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…Odpowiedzi:
text/javascript
jest przestarzały iapplication/x-javascript
był eksperymentalny (stądx-
przedrostek) przez okres przejściowy, ażapplication/javascript
mógł zostać znormalizowany.Powinieneś użyć
application/javascript
. Jest to udokumentowane w RFC .Jeśli chodzi o przeglądarki, nie ma różnicy (przynajmniej w nagłówkach HTTP). Było to po prostu tak, że zmiana
text/*
iapplication/*
grupy typ MIME miał możliwie spójne znaczenia gdzie. (text/*
Typy MIME są przeznaczone do treści czytelnych dla ludzi, JavaScript nie jest przeznaczony do bezpośredniego przekazywania znaczenia ludziom).Zauważ, że użycie
application/javascript
wtype
atrybucie elementu skryptu spowoduje zignorowanie skryptu (jako w nieznanym języku) w niektórych starszych przeglądarkach. Kontynuuj używanietext/javascript
lub całkowicie pomiń atrybut (co jest dozwolone w HTML 5).Nie stanowi to problemu w nagłówkach HTTP, ponieważ przeglądarki powszechnie (o ile mi wiadomo) albo całkowicie ignorują skrypty typu HTTP, albo są wystarczająco nowoczesne, aby je rozpoznać
application/javascript
.źródło
type
atrybut na<script>
elemencie. Nie możesz pominąćContent-Type
nagłówka HTTP… nigdy (jeśli nie określisz go w PHP, wówczas PHP domyślnietext/html
będzie bardzo źle).text/javascript
jest przestarzałe iapplication/x-javascript
eksperymentalne). Co gorsza, pozostawił początek odpowiedzi niespójny, z blokowym napisemtext/javascript
po prostu spędzającym czas bez znaczenia na górze odpowiedzi bez wyraźnego powodu.@echo off
for /r . %%X in (*.js) do (
svn propset svn:mime-type text/javascript "%%X"
)
który po uruchomieniu zmieni typ mime wszystkich plików JS w repozytorium na text / javascript. Następnie musisz zatwierdzić pliki JS do SVN z nowym typem MIME.typy mime rozpoczynające się od
x-
nie są standaryzowane. W przypadku javascript jest to trochę przestarzałe. Dodatkowo drugi fragment koduwymaga
short_open_tags
włączenia. powinieneś tego unikać.Jednak całkowicie poprawnym typem MIME dla javascript jest
http://www.iana.org/assignments/media-types/application/index.html
źródło
Zgodnie z RFC 4329 prawidłowy typ MIME dla JavaScript powinien być
application/javascript
. Jednak starsze wersje IE dławią się tym, ponieważ się spodziewajątext/javascript
.źródło
type
mówi atrybut HTML (aw wersjach roboczych HTML 5 ten atrybut może zostać pominięty w JavaScript).Użyj type = "application / javascript"
W przypadku HTML5 atrybut type jest nieaktualny, możesz go usunąć. Uwaga: domyślnie jest to „text / javascript” według w3.org, więc sugerowałbym dodanie „application / javascript” zamiast go usuwać.
Użyj „application / javascript”, ponieważ „text / javascript” jest przestarzały :
x-javascript jest eksperymentalny, nie używaj go.
źródło