Computer Engineering/ASP.NET Core

Middleware

onenewkong 2024. 3. 10. 13:56

미들웨어란?

요청 및 응답을 처리하는 앱 파이프라인으로 조립되는 소프트웨어

  • 요청을 파이프라인의 다음 구성 요소로 전달할지 여부 선택
  • 파이프라인의 다음 구성요소 전과 후에 작업 수행 가능

목적)

통신 요청 및 응답을 처리하는 파이프라인 구성

장점)

  • 필요한 미들웨어만 사용 가능
  • 개발자가 파이프라인을 구성할 수 있으므로 통신요청 및 응답의 발생 상황에 대해 쉽게 파악할 수 있음

 

동작 원리

등록 순서에 따른 요청 순서

  • Request에 대한 호출 순서: 등록순
  • Response에 대한 호출 순서: 등록 순서의 역순

 

종류

1) Use: 파이프라인을 단락할 수 있음

  • next 요청 대리자를 호출하지 않는 경우 사용

# 요청 파이프라인 단락: 다음 대리자에 요청을 전달하지 않을 때 이를 요청 파이프라인 단락(short - circuiting)한다고 함

2) Run: next 요청 대리자 호출 가능

  • 터미널이며 파이프라인을 종료함

3) Map: 파이프라인 분기에 규칙으로 사용 가능

  • 지정된 요청 경로의 일치를 기반으로 요청 파이프라인 분기

요청 대리자는 요청 파이프라인을 빌드하는데 사용되며, 요청 대리자는 각 HTTP 요청을 처리함

 

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();      // http 요청을 https로 리다이렉션
app.UseStaticFiles();           // 정적 파일을 반환하고 추가 요청 처리 단락

app.UseRouting();               // 요청을 라우팅하도록 미들웨어 라우팅

app.UseAuthorization();         // 사용자에게 보안 리소스에 액세스할 수 있는 권한 부여

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

'Computer Engineering > ASP.NET Core' 카테고리의 다른 글

Routing  (0) 2024.03.10
개요  (1) 2024.02.29