2009-07-15 5 views
13

Pourquoi la conversion est-elle en minuscules? Dans Firefox, il est indiqué: "X-Requested-With". Alors que dans IE, il va comme: "x-requested-with"dans IE, l'en-tête "X-Requested-With" de jquery devient "x-requested-with" (minuscule)

+0

Pourquoi vous en souciez-vous? Les en-têtes HTTP sont insensibles à la casse. En outre, vous pouvez ajouter plus de détails à votre question. Exemples de code, exactement où vous sentez que le cas de l'en-tête a changé, etc. –

+0

Il serait utile de savoir à quel moment il devient minuscule. Par exemple, regardez sur le fil avec un débogueur réseau comme Fiddler. – EricLaw

Répondre

15

La méthode HTTP est censé être sensible à la casse, mais les en-têtes HTTP sont censés être insensibles à la casse, selon RFC 2616.

+11

Donc, la réponse à "pourquoi IE fait cela" est "parce qu'il peut" ;-) – VolkerK

+0

Je suppose que oui! Je sais que lorsqu'il s'agit d'en-têtes HTTP, Microsoft (IE & IIS) aime tout faire en minuscules. Aucune idée pourquoi, mais devinerait que c'est pour quelque chose dans les internes d'IIS. –

9

J'avais remarqué quelque chose de similaire. Jetez un coup d'oeil à l'exemple de code et à ce qu'il fait lorsque j'ajoute des en-têtes HTTP personnalisés. D'abord, le code JavaScript, puis le vidage Fiddler (en-têtes personnalisés uniquement) de IE8, Safari4 et Firefox3. Notez que Firefox honore le cas, IE convertit en minuscules et Safari se convertit en propercase. Cependant, comme déjà mentionné, ceux-ci sont traités comme insensibles à la casse par le serveur, donc cela n'a pas vraiment d'importance.

function doXHR() { 
    var request = new XMLHttpRequest(); 
    request.open('GET', '/header/header.txt'); 
    request.setRequestHeader('x-lowercase', 'X-lowercase'); 
    request.setRequestHeader('x-Propercase', 'X-Propercase'); 
    request.setRequestHeader('x-CamelCase', 'X-CamelCase'); 
    request.setRequestHeader('x-UPPERCASE', 'X-UPPERCASE'); 
    request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
     console.log('Received XMLHttpRequest callback: \n' + request.responseText); 
    } 
    }; 
    request.send(""); 
} 

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727, .NET CLR 3.5.21022; .NET CLR 3.5.30729 ; .NET CLR 3.0.30618)

x-lowercase: X-lowercase 
x-camelcase: X-CamelCase 
x-uppercase: X-UPPERCASE 
x-propercase: X-Propercase 

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0, en-US) AppleWebKit/528,18 (KHTML, comme Gecko) version/Safari 4.0/528,17

X-Lowercase: X-lowercase 
X-Uppercase: X-UPPERCASE 
X-Camelcase: X-CamelCase 
X-Propercase: X-Propercase 

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv: 1.9 .0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)

x-lowercase: X-lowercase 
x-Propercase: X-Propercase 
x-CamelCase: X-CamelCase 
x-UPPERCASE: X-UPPERCASE