ASP. NET Core [3]: HttpContext 의 세계 로 진입 (노트)

원본 링크:http://www.cnblogs.com/RainingNight/p/httpcontext-in-asp-net-core.html
HttpContext 는 ASP. NET 의 핵심 대상 으로 모든 요청 에 대응 하 는 HttpContext 대상 을 만 듭 니 다. 저희 프로그램 은 HttpContext 대상 을 통 해 요청 정 보 를 얻 고 최종 적 으로 응답 을 생 성하 여 HttpContext 에 기록 하여 요청 처 리 를 완료 합 니 다.
1、 WebHost 는 IServer 를 시작 할 때 IHttpApplication 형식의 대상 으로 전 송 됩 니 다. Server 는 요청 에 대한 감청 을 담당 하고 요청 을 받 을 때 이 대상 의 ProcessRequestAsync 방법 으로 요청 을 우리 프로그램 에 전달 합 니 다.
2, 우선 사용  IHttpContextFactory  만 들 기 HttpContext 실례  ProcessRequestAsync  방법 중 에 지난 장 에서 소개 한 것 을 호출 하 다. RequestDelegate, 여기에서 우리 의 응용 프로그램 에 들 어 갑 니 다IHttpApplication  기본 값  HostingApplication  ,다음 과 같은 정의 가 있 습 니 다.
public class HostingApplication : IHttpApplication
{
    private readonly RequestDelegate _application;
    private readonly IHttpContextFactory _httpContextFactory;
    
// httpcontext
public Context CreateContext(IFeatureCollection contextFeatures) { var context = new Context(); var httpContext = _httpContextFactory.Create(contextFeatures); _diagnostics.BeginRequest(httpContext, ref context); context.HttpContext = httpContext; return context; // } //  ProcessRequestAsync 。 public Task ProcessRequestAsync(Context context) { return _application(context.HttpContext); } public void DisposeContext(Context context, Exception exception) { var httpContext = context.HttpContext; _diagnostics.RequestEnd(httpContext, exception, context); _httpContextFactory.Dispose(httpContext); _diagnostics.ContextDisposed(context); } }

 1.1 a. test title
HttpContext
HttpContext 대상 은 추상 적 인 HTTP 컨 텍스트 를 나타 내 는 데 익숙 할 것 입 니 다. HttpContext 대상 의 핵심 은 요청 한 Request 와 응답 을 설명 하 는 Response 속성 에 도 나타 납 니 다.
 
HttpRequest
HttpRequest 는 현재 요청 한 프로 토 콜 (HTTP 또는 HTTPS), HTTP 방법, 주소, 요청 헤더, 요청 체 등 을 설명 하 는 데 사용 할 수 있 습 니 다. HttpRequest 는 추상 적 인 클래스 이 며 기본 구현 은 DefaultHttpRequest 입 니 다.
 
HttpResponse
요청 을 나타 내 는 추상 류 를 알 게 되 었 습 니 다.  HttpRequest  그 후에 우 리 는 그것 에 대응 하 는 것 을 다시 한 번 알 아 보고 응답 하 는 것 을 묘사 했다.  HttpResponse  형식: HttpResponse 도 추상 적 인 클래스 입 니 다. 저 희 는 이 를 사용 하여 요청 에 대한 응답 을 출력 합 니 다. 예 를 들 어 HTTP 상태 코드, Cookies, HTTP 응답 메시지 헤더, 응답 주체 등 을 설정 하고 응답 을 클 라 이언 트 에 보 낼 때 관련 이 벤트 를 제공 합 니 다.
 
IHttpContextAccessor
ASP. NET Core 에 모든 것 을 주입 합 니 다. 정적 변 수 를 사용 하지 않 고 주입 방식 으로 인 스 턴 스 를 가 져 오 는 것 을 추천 합 니 다.그래서 ASP. NET Core 는 하 나 를 제공 합 니 다.  IHttpContextAccessor  현재 요청 한 HttpContext 인 스 턴 스 를 통합 적 으로 가 져 오 는 인터페이스:
public interface IHttpContextAccessor
{
    HttpContext HttpContext { get; set; }
}

ASP. NET Core 기본 값 은 주입 되 지 않 았 습 니 다.  IHttpContextAccessor  대상, 프로그램 에서 사용 하려 면 수 동 으로 등록 해 야 합 니 다.
public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton();
}
   ASP.NET Core AsyncLocal  스 레 드 내의 유일한 인 스 턴 스 를 확보 합 니 다.
 
다음으로 전송:https://www.cnblogs.com/fuyouchen/p/9559707.html

좋은 웹페이지 즐겨찾기