HttpContext.Current.Request.Url.Host가 웹 브라우저에서 사용되는 URL과 다른 URL을 반환하는 이유는 무엇입니까? 예를 들어 브라우저에 "www.someurl.com"을 입력하면 HttpContext.Current.Request.Url.Host 변수는 "www.someotherurl.com"과 같습니다.HttpContext.Current.Request.Url.Host의 출처는 어디입니까?
2
A
답변
4
HttpContext.Current.Request.Url.Host
은 ASP.net 응용 프로그램이받는 호스트 헤더의 내용입니다. (Host
과 같은 HTTP 헤더에 대한 자세한 내용은 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html을 참조하십시오.)
일반적으로 ASP.NET에서 보는 헤더는 브라우저에서 보낸 Host
헤더와 동일합니다. 그러나 소프트웨어 나 하드웨어가 브라우저와 ASP.net 코드 사이에 있고 Host
헤더를 다시 쓰는 경우에는 일치하지 않을 수도 있습니다.
예를 들어, GoDaddy와 같은 대규모 예산 주최자는 단일 IIS 웹 사이트에서 저렴한 호스트 계획을 사용하여 여러 최상위 도메인을 지원할 수 있습니다. GoDaddy는 별도의 IIS 웹 사이트 (서버로드 및 그에 따른 비용을 추가 함)를 만드는 대신에 대한 요청을 "기본"호스팅 사이트의 가상 디렉터리 (예 : http://firstsite.com/secondsite). Host : 헤더와 URL을 모두 변경합니다.
알아 두어야 할 점은 앱에 수신중인 HTTP Request Headers의 콘텐츠를 덤핑하면 쉽게 확인할 수 있습니다.
어쨌든 누가 호스트 헤더를 변경했는지 알아 보려면 웹 응용 프로그램을 호스팅하는 사람들 (또는로드 밸런서 및/또는 역방향 프록시를 담당하는 팀)과 함께 시작하십시오. 호스트 헤더를 다시 쓰는 책임이 있습니다.
관련 문제
- 1. 이 세션의 출처는 어디입니까?
- 2. 문자열의 출처는 어디입니까?
- 3. Web.HttpContext.Current.User.Identity.Name의 출처는 어디입니까?
- 4. C#, App.config의 출처는 어디입니까?
- 5. 아이콘의 출처는 어디입니까?
- 6. User.Identity 데이터의 출처는 어디입니까?
- 7. $ row의 출처는 어디입니까?
- 8. 토스트의 출처는 어디입니까?
- 9. mysqlclient.lib의 출처는 어디입니까?
- 10. 'color_puts'의 출처는 어디입니까?
- 11. RequireHttpsAttribute의 출처는 어디입니까?
- 12. 특성이라는 단어의 출처는 어디입니까?
- 13. 이 그리드 변수의 출처는 어디입니까?
- 14. 플랫 파일이라는 용어의 출처는 어디입니까?
- 15. add (Propertyname) 메소드의 출처는 어디입니까?
- 16. Flex : ChildConstraintInfo 객체의 출처는 어디입니까?
- 17. C# dbml 파일의 출처는 어디입니까?
- 18. Sequel :: Model : create_table과 같은 메소드의 출처는 어디입니까?
- 19. 이 오류 메시지의 출처는 어디입니까? 간단한 양식?
- 20. 뷰 핸들러 디자인 패턴의 출처는 어디입니까?
- 21. 탐지 된 종속성 - 각 종속성의 출처는 어디입니까?
- 22. rails-2.3.5 및 rack-1.0.1의 출처는 어디입니까?
- 23. Drupal, template.php $ form 이름의 출처는 어디입니까?
- 24. Sun CC : "PointZERO"기호의 출처는 어디입니까? 내 소스 코드에 없어요.
- 25. 기존 앱에 cocos2d 통합 - 또는 - 흰색 직사각형의 출처는 어디입니까?
- 26. 단어 가중치를위한 출처는?
- 27. Drupal6 : theme_preprocess_page (& $ vars)에서 $ vars의 출처는 어디입니까? (빵 부스러기 조작 방법)
- 28. argparse python modul 동작에 대한 설명 : 자본 자리 표시 자의 출처는 어디입니까?
- 29. 유형 목록의 출처는 어디에서 찾을 수 있습니까?
- 30. iPhone MoviePlayer 예제, 버튼과 라벨의 출처는
글쎄, 어떻게 다른가요? 그것은 당신이 http://www.cnn.com을 요구하고 있지만 "www.disney.com"을 보여주는 Url.Host이거나 거기에 적당한 패턴이 있습니까? –
그들은 비슷합니다. 더 가까운 예가 이것입니다. 브라우저에 입력 된 URL은 "www.mysite.net"이지만 Url.Host 변수는 "www.mysitexy.net"을 반환합니다. 호스트 이름의 마지막 두 글자 인 "xy"가 추가됩니다. 나는 mysitexy가 방화벽 내부에서만 사용 가능하고 mysite가 방화벽 내부와 외부에서 사용할 수 있어야한다고 생각한다. –