본문 바로가기

Back-End/Spring

스프링 5 - PushBuilder란

Servlet 4에서 추가된 PushBuilder를 Spring5부터 지원을 합니다. HTTP2 서버 푸시 기능에 대해 살펴보겠습니다.

 

기존 예제

단순히 html 페이지에서 css, js를 로딩하는 예제이다.

첫 호출

두번째 호출

왜 로딩속도가 더 빨라졌을까?

cache 때문? 하지만 Disable cache를 설정해놨기 떄문에 아니다.

두번째가 더 빠른 이유는 Servlet의 라이플사이클과 관련이 있다.

처음 호출할 때 Servlet을 초기화 하기 때문에 상대적으로 느린 것이다.

 

HTTP2를 사용한 예제

yml에 해당 코드를 추가해주자.

chrome 창을 보면 프로토콜이 h2로 바뀐것을 확인할 수 있다.

서버 푸쉬는 index 페이지를 볼 때 이 리소스를 필요로 할거야 예상하고 미리 보내주는 기능이다.

 

intiator를 보면 Push라고 나온다. index.html 요청이 끝나기전에 이미 다른 것들을 요청한다.

하지만!

컨트롤러에 하드코딩 되어 있는 것이 문제다. 코드가 완전 침투적이다.

리소스에 대해 완벽히 알아야 된다.

Servlet Filter로 처리하기

파싱비용 걱정??

push할때 cache관련 해드를 추가해서 처리하는 방법

응답이 클때 파싱비용이 들지만, 또 효율적인거 같은데...

 

'Back-End > Spring' 카테고리의 다른 글

Spring boot 2.0에 관하여  (0) 2019.05.20
스프링 CORS  (0) 2019.05.20
스프링 프록시 패턴 - Proxy Pattern  (0) 2019.05.02
PSA에 관하여  (0) 2019.05.02
Spring annotation - @Service,@Controller,@Component 차이  (0) 2019.04.16