이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19573|회답: 0

[ASP.NET] asp.net HttpContext의 설명적 의미

[링크 복사]
게시됨 2018. 3. 13. 오후 9:28:21 | | |
.ashx에서 HttpContext라는 단어는 무엇을 의미하나요? 이 이야기를 해보죠

HttpContext 클래스: 개별 HTTP 요청에 관한 모든 HTTP 특화 정보를 캡슐화합니다.

처리 요청 실행 체인의 각 단계마다 각 객체 간에 오가는 객체가 있으며, 즉 요청의 컨텍스트 정보가 저장되는 HttpContext 객체입니다. HttpContext는 처리해야 할 단일 요청 ASP.NET 모든 정보를 캡슐화합니다. 요청 처리 메커니즘이 설정되면, HttpContext 클래스는 HttpRuntime 객체로 인스턴스화되며, 이 객체는 요청 수명의 여러 단계를 거칩니다


HttpContext 소개: 단일 사용자, 단일 요청에 대한 데이터를 유지하며, 그 요청 기간 동안만 데이터를 유지합니다. 서로 다른 HttpModules와 HttpHandler 간에 전달해야 하는 값을 유지하기 위해 제공됩니다. 또한 완전한 요청을 위한 적절한 정보를 유지하는 데도 사용할 수 있습니다.

Current 속성은 현재 요청된 HttpContex 객체를 반환하는 유용한 정적 멤버입니다. 항목은 요청을 처리하는 모듈과 핸들러들 간에 데이터를 공유하는 해시 테이블입니다. 각 커스텀 모듈이나 핸들러는 요청된 HttpContext 객체에 자체 정보를 추가할 수 있으며, Items에 저장된 정보는 결국 페이지에서 사용하지만, 이 정보는 요청 실행 중에만 접근할 수 있습니다
HttpContext
정의: 개별 HTTP 요청에 관한 모든 HTTP 고유 정보를 캡슐화합니다.

사실, Http 요청과 반환된 모든 정보가 그 안에 포함되어 있습니다.

HttpContext는 System.Runtime.Remoting.Messaging.CallContext.HostContext에서 유래했습니다. 이 HostContext 정의는 현재 스레드와 연관된 호스트 컨텍스트를 얻거나 설정하는 것입니다(따라서 HttpContext는 현재 요청의 스레드에서만 사용할 수 있습니다). )



HttpContext는 실제로 CallContext.HostContext 속성에 저장됩니다호스트컨텍스트에 대해 아직도 궁금하신다면 직접 Reflector.exe에서 확인하실 수 있습니다. 더 이상 코드를 올리고 싶지 않습니다. 일부 타입과 메서드는 공개되지 않기 때문입니다.




HttpContext.Current.Items는 HttpModule과 HTTPHandler 간 데이터 공유 시 사용할 수 있는데, 이는 모든 사용자 요청이 HTTP 런타임 파이프라인인 HttpModule, HTTPHandler를 거치기 때문입니다. IHttpMoudle 메서드를 구현해 HttpMoudle을 통해 사용자 요청에 정보를 전달할 때, HttpContext.Current.Items를 사용해 다양한 요청 페이지와 Http모듈에서 데이터를 전송할 수 있지만, 요청이 종료되고 데이터가 게시되면 이 컬렉션의 데이터는 스스로 사라집니다.

예를 들어, 요청을 할 때마다 ef에서 동일한 DbContext 컨텍스트 객체를 사용하고 싶어 하며, 코드는 다음과 같습니다:








이전의:UserAgent를 기반으로 방문자가 휴대전화인지 컴퓨터인지 판단하세요
다음:Asp.Net IHttpHandler가 도입되었습니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com