미들웨어란?
요청 및 응답을 처리하는 앱 파이프라인으로 조립되는 소프트웨어
- 요청을 파이프라인의 다음 구성 요소로 전달할지 여부 선택
- 파이프라인의 다음 구성요소 전과 후에 작업 수행 가능
목적)
통신 요청 및 응답을 처리하는 파이프라인 구성
장점)
- 필요한 미들웨어만 사용 가능
- 개발자가 파이프라인을 구성할 수 있으므로 통신요청 및 응답의 발생 상황에 대해 쉽게 파악할 수 있음
동작 원리
등록 순서에 따른 요청 순서
- 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();
'Old > ASP.NET Core' 카테고리의 다른 글
Routing (0) | 2024.03.10 |
---|---|
개요 (1) | 2024.02.29 |