개발 무지렁이

[Spring Boot] 브라우저 안의 웹캐시 사용하기 본문

Backend/스프링부트

[Spring Boot] 브라우저 안의 웹캐시 사용하기

Gaejirang-e 2022. 12. 21. 10:42

웹캐시


매번 똑같은 요청에 통신하지 않도록 따로 요청에 대한 응답을 메모해두는 것

웹캐시의 단점


DB의 데이터 변화에 즉각적으로 대응하지 못한다.
=> 웹캐시에 유효기간을 걸면 된다.
(해당시간이 지나면 똑같은 요청이더라도 캐시를 거치지 않고 통신한다)

[MemberController.java]


@Controller
@RequestMapping("/member")
@RequiredArgsConstructor
public class MemberController {
    private final MemberService memberService;

    @GetMapping("/profile/img/{id}")
    public ResponseEntity<Object> showProfileImg(@PathVariable Long id) throws URISyntaxException {
        URI redirectUri = new URI(memberService.getMemberById(id).getProfileImgUrl());
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setLocation(redirectUri);
        httpHeaders.setCacheControl(CacheControl.maxAge(60 * 60 * 1, TimeUnit.SECONDS)); // 유효기간: 1시간
        return new ResponseEntity<>(httpHeaders, HttpStatus.FOUND);
    }
}
Comments