๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Springboot

[spring boot] ์ •์  ๋ฆฌ์†Œ์Šค ์ง€์›

 

์ •์  ๋ฆฌ์†Œ์Šค๋ž€?

ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ, ๋ฆฌ์†Œ์Šค๊ฐ€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ์–ด์„œ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

๊ธฐ๋ณธ ๋ฆฌ์†Œ์Šค ์œ„์น˜

/**”์ด mapping์— ์˜ํ•ด ์•„๋ž˜์˜ 4๊ฐ€์ง€ ํด๋”์˜ ์†Œ์Šค์™€ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค.

 

classpath:/static

classpath:/public

classpath:/resources/

classpath:/META-INF/resources

 

์˜ˆ์‹œ) /hello.html => /static/hello.html

๋งตํ•‘ ์„ค์ • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

spring.mvc.static-path-pattern

์˜ˆ์‹œ) spring.mvc.static-path-pattern: /static/** => http://localhost:8080/static/hello.html

๋ฆฌ์†Œ์Šค ์ฐพ์„ ์œ„์น˜ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

WebMvcConfigurer์˜ addRersourceHandlers๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•  ์ˆ˜ ์žˆ๋‹ค.

ResourceHttpRequestHandler๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์ด ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

@Configuration
public class WebConfig implements WebMvcConfigurer {

    // ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ๋ฒ•. ๊ธฐ์กด์˜ resource handler ์œ ์ง€, ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/m/**")
                .addResourceLocations("classpath:/m/") // ๋ฐ˜๋“œ์‹œ ์Šฌ๋ž˜์‹œ๋กœ ๋๋‚˜์•ผ ํ•จ!
                .setCachePeriod(20); // ์ดˆ ๋‹จ์œ„
    }
}

304 ์‘๋‹ต

If-Modified-Since์™€ Last-Modified ํ—ค๋”๋ฅผ ๋ณด๊ณ  304 ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.

์ด๊ฒƒ์€ ์‘๋‹ต์ด 200์ผ ๋•Œ์˜ If-Modified-Since์™€ Last-Modified ํ—ค๋”์ด๋‹ค.