Server Push

Server Push는 예측 전송이지만 운영 현실은 제한적이었다

서버는 HTML 응답 중 PUSH_PROMISE로 CSS나 JS를 미리 예약하고 보낼 수 있다. 그러나 캐시 중복과 예측 실패 때문에 현대 브라우저 생태계에서는 사용이 크게 줄었다.

프로토콜에는 PUSH_PROMISE와 promised stream이 정의됨
클라이언트는 SETTINGS_ENABLE_PUSH=0 또는 RST_STREAM으로 거절 가능
실제 웹에서는 103 Early Hints, preload, 캐시 전략이 더 자주 쓰임
CClientGET /index.html
->
SServerHTML 분석 전 필요한 리소스 예측
->
PPUSH_PROMISE/style.css, /app.js
Stream 1
HTML HEADERS
PUSH_PROMISE
HTML DATA
END
Stream 2
CSS HEADERS
CSS DATA
END
Stream 4
JS HEADERS
JS DATA
DATA
END
장점왕복 지연 감소 의도

클라이언트가 요청하기 전에 필요한 리소스를 보낼 수 있다.

문제예측 실패와 캐시 중복

이미 캐시된 리소스를 밀어 보내면 대역폭을 낭비한다.

현실브라우저 지원 축소

프로토콜 기능과 실제 웹 플랫폼 지원은 구분해서 봐야 한다.