2012-02-01 2 views
4
내가 클라이언트에서 자바 스크립트를 사용

, navigator.userAgent를 얻을 반환HTTP_USER_AGENT 및 navigator.userAgent는 동일하지 않습니다.

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; .NET4.0E) 

사용 C#을 Request.ServerVariables["HTTP_USER_AGENT"], 반환합니다.

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) 

당신이 그 IE를 :(볼 수 있듯이

IE는 항상 이, 또는 나만? 같은 값을 얻는 방법

PS, 로컬 IIS에서도 같은 결과를 보았습니다.

+0

이것에 대한 답변을 얻었습니까? – buggedcom

+0

NO. 그것은 단지 IE에서 다릅니다. 이유는 모르겠지만, 특히 리로드시에 많은 일이 발생합니다 (첫 번째 히트가 아님). –

답변

1

HTTP 요청에서 전송되는 버전과 navigator.userAgent을 통해 얻은 버전간에 Internet Explorer 9 이상의 사용자 에이전트 문자열은 거의 항상 다릅니다. 이것은 문자열에 소위 기능 토큰이 있기 때문입니다. 이에 대한 배경은 여기에 설명되어 있습니다 : 인터넷 익스플로러의

이전 버전의 기능 토큰은 사용자 에이전트의 전 플랫폼 및 사후 플랫폼 키 부분을 사용하여 정의 포함 :은 MSDN-문서에서

http://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx HTTP 협상 프로세스 중 문자열 시간이 지남에 따라 지나치게 긴 사용자 에이전트 문자열이 생겨 특정 웹 서버에 문제가 발생합니다. 문제는 일반적으로 사용자 에이전트 문자열이 256자를 초과 할 때 나타납니다. Internet Explorer 9에서 사용자 에이전트 문자열은 HTTP 협상 중에 기능 토큰을 더 이상 포함하지 않습니다. 지형지 물 토큰은 navigator 객체의 userAgent 속성에 의해 반환되는 값에 포함됩니다. 이전 동작에 의존하는 응용 프로그램은 적절하게 수정해야합니다.

응용 프로그램에서 사용하려는 마녀를 결정해야합니다. 그들을 "동기화"할 방법이 없습니다. Javascript를 통해 얻은 정보는 더 많은 정보를 포함해야합니다 ...

관련 문제