미들웨어는 요청 및 응답을 처리하는 앱 파이프라인으로 조립되는 소프트웨어이다. (파이프라인 = 일련의 미들웨어들의 통칭)

middleware-pipeline.png

모든 응답은 위의 이미지의 파이프라인을 따라가며, 다음과 같은 내용들을 고려한다.

예외 필터는 모든 예외 사항을 처리하기 위해, 모든 미들웨어 중 가장 먼저 호출되고 나중에 빠져나간다

1. 요청이 미들웨어를 거치는 도식

미들웨어들을 거쳐서 요청이 응답이 되는 도식은 아래와 같다.

Untitled

2. 미들웨어 처리 순서 및 내용 예제(From Doc)

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseDatabaseErrorPage();
}
else
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
**app.UseRouting();**
**app.UseAuthentication();
app.UseAuthorization();**
app.UseSession();
// MapControllerRoute, MapRazorPages등 매핑은
// **UseEndpoint()**로 사용하는게 좋음.
app.MapRazorPages();
  1. 예외/오류 처리
  2. HTTPS 리디렉션 미들웨어(UseHttpsRedirection)가 HTTP 요청을 HTTPS로 리디렉션합니다.
  3. 정적 파일 미들웨어(UseStaticFiles)가 정적 파일을 반환하고 추가 요청 처리를 단락합니다.
  4. Cookie 정책 미들웨어(UseCookiePolicy)가 앱이 EU GDPR(일반 데이터 보호 규정)을 준수하도록 만듭니다.
  5. 요청을 라우팅하도록 미들웨어(UseRouting) 라우팅.
  6. 인증 미들웨어(UseAuthentication)가 보안 리소스에 대한 액세스가 허용되기 전에 사용자 인증을 시도합니다.
  7. 권한 부여 미들웨어(UseAuthorization)는 사용자에게 보안 리소스에 액세스할 수 있는 권한을 부여합니다.