왜 소문자로 변환됩니까? Firefox에서는 다음과 같이 진행됩니다. "X-Requested-With". IE에서는 다음과 같이 나타납니다. "x-requested-with"인 경우 jquery의 "X-Requested-With"헤더가 "x-requested-with"(소문자)가됩니다
13
A
답변
15
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
왜 신경 씁니까? HTTP 헤더는 대소 문자를 구분하지 않습니다. 또한 질문에 세부 정보를 추가 할 수 있습니다. 코드 예제, 헤더의 대소 문자가 바뀌 었음을 감지 한 곳 등 –
어떤 시점에서 소문자가되는지 알고 있으면 도움이됩니다. 예를 들어, Fiddler와 같은 네트워크 디버거로 유선을 감시하십시오. – EricLaw