2009-07-15 6 views
13

왜 소문자로 변환됩니까? Firefox에서는 다음과 같이 진행됩니다. "X-Requested-With". IE에서는 다음과 같이 나타납니다. "x-requested-with"인 경우 jquery의 "X-Requested-With"헤더가 "x-requested-with"(소문자)가됩니다

+0

왜 신경 씁니까? HTTP 헤더는 대소 문자를 구분하지 않습니다. 또한 질문에 세부 정보를 추가 할 수 있습니다. 코드 예제, 헤더의 대소 문자가 바뀌 었음을 감지 한 곳 등 –

+0

어떤 시점에서 소문자가되는지 알고 있으면 도움이됩니다. 예를 들어, Fiddler와 같은 네트워크 디버거로 유선을 감시하십시오. – EricLaw

답변

15

HTTP 메서드는 대/소문자를 구분하지만, HTTP 헤더는 RFC 2616에 따라 대/소문자를 구분하지 않습니다.

+11

그래서 "IE가 이것을하는 이유"에 대한 대답은 "할 수 있기 때문에"입니다. ;-) – VolkerK

+0

나는 그렇게 생각합니다! HTTP 헤더의 경우 Microsoft (IE 및 IIS)는 모든 것을 소문자로 만들고 싶습니다. 이유는 모르겠지만 그것이 IIS의 내부에서 뭔가를위한 것이라고 추측 할 수 있습니다. –

9

비슷한 것을 눈치 챘습니다. 몇 가지 사용자 지정 HTTP 헤더를 추가 할 때 샘플 코드와 그 기능을 살펴보십시오. 첫 번째는 JavaScript 코드이며 IE8, Safari4 및 Firefox3의 피들러 덤프 (맞춤 헤더 만 해당)입니다. 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(""); 
} 

사용자 에이전트 : Mozilla/4.0 (호환; MSIE 8.0; 윈도우 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 

사용자 에이전트 : 모질라/5.0 (윈도우, U, 윈도우 NT 6.0; EN-US) AppleWebKit/528.18 게코 같은 (KHTML) 버전/4.0 사파리/528.17

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

사용자 에이전트 : Mozilla/5.0 (Windows; U; Windows NT 6.0; ko-kr; 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