Priority
요청·응답 Performance

개요

Priority는 요청한 리소스의 상대적 우선순위를 표현하는 HTTP 우선순위(RFC 9218) 헤더입니다. 클라이언트가 요청에 실어 선호를 알리고, 서버는 응답에서 이를 재조정(override)할 수 있어 양방향입니다.

값은 긴급도 `u`(0~7, 기본 3)와 점진 처리 플래그 `i`로 구성된 구조화 필드입니다(예: `Priority: u=1, i`).

자세히

HTTP/2는 복잡한 트리 기반 우선순위 체계를 가졌지만 상호운용이 나빠 사실상 폐기되었고, 그 대안으로 훨씬 단순한 'Extensible Prioritization Scheme'이 도입되었습니다. Priority 헤더는 그 방식을 헤더로 표현한 것으로, `u`(urgency)는 0(최우선)~7(최하위) 범위이며 기본값은 3, `i`(incremental)는 부분 데이터를 받는 즉시 렌더할 수 있는 리소스임을 알립니다.

브라우저는 리소스 유형에 따라 자동으로 우선순위를 부여합니다(예: CSS·폰트는 높게, lazy 이미지는 낮게). 개발자는 HTML `<link>`나 fetch의 `priority`/`fetchpriority` 속성으로 힌트를 조정할 수 있고, 이는 결국 이 Priority 헤더(또는 HTTP/2·HTTP/3의 PRIORITY_UPDATE 프레임)로 전달됩니다.

서버 재조정이 이 방식의 강점입니다. 클라이언트는 어떤 리소스가 페이지에 임계적인지 완전히 알지 못하므로, 서버가 응답에서 Priority를 다시 지정해 실제 전송 순서를 최적화할 수 있습니다. `i` 플래그는 여러 리소스를 라운드로빈으로 인터리브해 프로그레시브 렌더를 돕는 반면, 비점진 리소스는 하나씩 완결 전송하는 편이 유리합니다. 다만 우선순위는 어디까지나 힌트이며 서버·중간자가 반드시 따르지는 않습니다.

문법

Priority: u=<0-7>[, i]

e.g. Priority: u=1, i

지시어 / 값

u=<0-7>urgency(긴급도). 0이 가장 높고 7이 가장 낮으며 기본값은 3. 값이 작을수록 먼저 처리.
iincremental(점진적) 플래그. 부분 수신분을 즉시 처리·표시할 수 있는 리소스(예: 프로그레시브 이미지)임을 표시.

실무 참고

관련 헤더

스펙 근거