2009-07-15 44 views
13

爲什麼它會轉換爲小寫? 在Firefox中,它的格式如下:「X-Requested-With」。 在IE中,它的格式如下:「x-requested-with」在IE中,jquery的「X-Requested-With」標題變成「x-requested-with」(小寫)

+0

爲什麼你在意? HTTP標頭不區分大小寫。另外,您可能想要爲您的問題添加更多詳細信息。代碼示例,確切地說,您在哪裏檢測到標頭的情況發生了變化等。 – 2009-07-15 10:19:56

+0

瞭解它變成小寫字母的位置會很有幫助。例如,使用像Fiddler這樣的網絡調試器觀察電線。 – EricLaw 2009-07-16 03:39:58

回答

15

根據RFC 2616,HTTP方法應該區分大小寫,但HTTP標頭應該不區分大小寫。

9

我注意到了類似的東西。看看示例代碼以及它在添加一些自定義HTTP標頭時的功能。首先是JavaScript代碼,然後是來自IE8,Safari4和Firefox3的Fiddler轉儲(僅自定義標題)。請注意,Firefox榮譽案例,IE轉換爲小寫,Safari轉換爲propercase。

但是,正如已經提到的那樣,服務器將這些視爲不區分大小寫,因此它並不重要。

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(兼容; MSIE 8.0; Windows NT的6.0;三叉戟/ 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(窗口; U; Windows NT的6.0; EN-US)爲AppleWebKit/528.18(KHTML,例如Gecko)版本/ 4.0的Safari/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; en-US; 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