Quiz
(1) ์กฐ๊ฑด๋ถ ์์ฒญ(Conditional Request)์ ๋์ ๋ฆฌ์์ค์ ๋ฉ์๋ ์๋ฏธ๋ก ์ ์ ์ฉํ๊ธฐ ์ ์ ํ ์คํธ๋๊ธฐ ์ํ ์ ์ ์กฐ๊ฑด์ ๋ํ๋ด๋ ํค๋ ํ๋๋ฅผ ํ๋ ์ด์ ํฌํจํ๋ HTTP ์์ฒญ [RFC7231]์ด๋ค. ( O / X )
(2) HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐํ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ๋ค. ( O / X )
(3) ์น ํ์ด์ง์ ๋ด์ฉ์ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด, ํ์ด์ง์ ๋ด์ฉ์ ๋ค์ ์ ์กํ์ง ์๊ธฐ ์ํด ํค๋์ Last-Modified์ ETag๋ฅผ ์ฌ์ฉํ๋ค. ( O / X )
(4) ๋ค์ ์ณ์ ๊ฒ์ ๊ณ ๋ฅด์์ค.
ใฑ. Last-Modified ์์ฑ ๊ถํ์ ์๋ฒ๊ฐ ๊ฐ๊ณ ์๋ค. ใด. Last-Modified๋ Date(๋ฌธ์๊ฐ ์๋ฒ์์ ๋ง๋ค์ด์ง ์๊ฐ)๋ณด๋ค ๋ฆ๊ฒ ์ค์ ๋๋ฉด ์๋๋ค. ใท. ์๋ฒ๋ ํญ์ Last-Modified ํค๋๋ฅผ ๋ณด๋ด์ผ ํ๋ค. ใน. ETag ์์ฑ ๊ถํ์ ์๋ฒ๊ฐ ๊ฐ๊ณ ์๋ค.
(5) Last-Modified ์ ๋์ ๊ณผ์ ์ผ๋ก ํ๋ฆฐ ๋ถ๋ถ์?
์์ฒญ์ ๋ณด๋ธ๋ค.
ํด๋ผ์ด์ธํธ์์๋ Last-Modified ์๋ต ํค๋๋ฅผ ๋ฐ๋๋ค.
์์ฒญ์ If-Modified-Since ํค๋์ ์บ์๋ ๋ง์ง๋ง ์์ ์ผ์ ๋ณด๋ธ๋ค.
์๋ฒ์์ If-Modified-Since ํค๋๋ฅผ ๋ณด๊ณ , ๋ณ๊ฒฝ ์ผ์๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๊ณ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ
-> ๋ฐ๋๋ฅผ ์ค๋ค.
-> Last-Modified ํค๋์ ์ต๊ทผ ๋ณ๊ฒฝ ์ผ์ ๊ฐ์ ์ค๋ค.
์ต๊ทผ ๋ณ๊ฒฝ ์ผ์๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๊ณ ์๋ ๊ฒ๊ณผ ๋ค๋ฅธ ๊ฒฝ์ฐ
-> ๋ฐ๋๊ฐ ์๋ค.
(6) Etag์ ๋์ ๊ณผ์ ์ด๋ค. [ << ๋น์นธ >> ]์ ๋ค์ด๊ฐ ์๋ง์ ํค๋๋?
์์ฒญ์ ๋ณด๋ธ๋ค.
์๋ต ํค๋์ Etag ๊ฐ์ ๋ณด๋ธ๋ค.
์์ฒญ ๋ฉ์์ง์ ์บ์๋ ๋ฌธ์์ ETag๊ฐ์ If-None-Match ํค๋์ ๋ด์ ๋ณด๋ธ๋ค.
์๋ฒ์์ If-None-Match๊ฐ์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉด, ์บ์๋ฅผ ๋ณด๋ผ๋ ์๋ฏธ๋ก GET ๋๋ HEAD์ด๋ฉด [ << ๋น์นธ >> ] ์ํ ์ฝ๋, ๊ธฐํ ๋ชจ๋ ์์ฒญ ๋ฉ์๋์ ๋ํด [ << ๋น์นธ >> ] ์ํ ์ฝ๋๋ก ์๋ต ์๋ตํ๋ค.
๋ณ๊ฒฝ๋๋ค๋ฉด, 200 ์ํ ์ฝ๋์ ํจ๊ป ์๋ก์ด Etag๊ฐ ์๋ต ํค๋์ ์ ์กํ๋ค.
๋ธ๋ผ์ฐ์ ๋ 200์ผ ๊ฒฝ์ฐ ์๋ก ๋ค์ด ๋ฐ์ ํ Etag๊ฐ์ ๊ฐฑ์ ํ๋ฉฐ,
[ << ๋น์นธ >> ], [ << ๋น์นธ >> ] ์ผ ๊ฒฝ์ฐ ์บ์ฌ์์ ๋ก๋ํ๋ค.
(7) Last-Modified์ Etag๊ฐ ๋์์ ์กด์ฌํ๋ฉด Last-Modified์ ์ฐ์ ์์๊ฐ ๋๋ค. ( O / X )
(8) ๋ค์ ํ์ดํ์ ๋ค์ด๊ฐ ์ํ์ฝ๋๋?
๋ต์
(1) ์กฐ๊ฑด๋ถ ์์ฒญ(Conditional Request)์ ๋์ ๋ฆฌ์์ค์ ๋ฉ์๋ ์๋ฏธ๋ก ์ ์ ์ฉํ๊ธฐ ์ ์ ํ ์คํธ๋๊ธฐ ์ํ ์ ์ ์กฐ๊ฑด์ ๋ํ๋ด๋ ํค๋ ํ๋๋ฅผ ํ๋ ์ด์ ํฌํจํ๋ HTTP ์์ฒญ [RFC7231]์ด๋ค. ( O / X )
(2) HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐํ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ๋ค. ( O / X )
(3) ์น ํ์ด์ง์ ๋ด์ฉ์ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด, ํ์ด์ง์ ๋ด์ฉ์ ๋ค์ ์ ์กํ์ง ์๊ธฐ ์ํด ํค๋์ Last-Modified์ ETag๋ฅผ ์ฌ์ฉํ๋ค. ( O / X )
(4) ๋ค์ ์ณ์ ๊ฒ์ ๊ณ ๋ฅด์์ค.
ใฑ. Last-Modified ์์ฑ ๊ถํ์ ์๋ฒ๊ฐ ๊ฐ๊ณ ์๋ค. ใด. Last-Modified๋ Date(๋ฌธ์๊ฐ ์๋ฒ์์ ๋ง๋ค์ด์ง ์๊ฐ)๋ณด๋ค ๋ฆ๊ฒ ์ค์ ๋๋ฉด ์๋๋ค. ใท. ์๋ฒ๋ ํญ์ Last-Modified ํค๋๋ฅผ ๋ณด๋ด์ผ ํ๋ค. ใน. ETag ์์ฑ ๊ถํ์ ์๋ฒ๊ฐ ๊ฐ๊ณ ์๋ค.
ใฑ, ใด, ใน
(5) Last-Modified ์ ๋์ ๊ณผ์ ์ผ๋ก ํ๋ฆฐ ๋ถ๋ถ์?
์์ฒญ์ ๋ณด๋ธ๋ค.
ํด๋ผ์ด์ธํธ์์๋ Last-Modified ์๋ต ํค๋๋ฅผ ๋ฐ๋๋ค.
์์ฒญ์ If-Modified-Since ํค๋์ ์บ์๋ ๋ง์ง๋ง ์์ ์ผ์ ๋ณด๋ธ๋ค.
์๋ฒ์์ If-Modified-Since ํค๋๋ฅผ ๋ณด๊ณ , ๋ณ๊ฒฝ ์ผ์๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๊ณ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ
-> ๋ฐ๋๊ฐ ์๋ค
์ต๊ทผ ๋ณ๊ฒฝ ์ผ์๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๊ณ ์๋ ๊ฒ๊ณผ ๋ค๋ฅธ ๊ฒฝ์ฐ
-> ๋ฐ๋๋ฅผ ์ค๋ค.
-> Last-Modified ํค๋์ ์ต๊ทผ ๋ณ๊ฒฝ ์ผ์ ๊ฐ์ ์ค๋ค.
(6) Etag์ ๋์ ๊ณผ์ ์ด๋ค. ๋น์นธ์ ๋ค์ด๊ฐ ์๋ง์ ํค๋๋?
์์ฒญ์ ๋ณด๋ธ๋ค.
์๋ต ํค๋์ Etag ๊ฐ์ ๋ณด๋ธ๋ค.
์์ฒญ ๋ฉ์์ง์ ์บ์๋ ๋ฌธ์์ ETag๊ฐ์ If-None-Match ํค๋์ ๋ด์ ๋ณด๋ธ๋ค.
์๋ฒ์์ If-None-Match๊ฐ์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ๋์ง ์์์ผ๋ฉด, ์บ์๋ฅผ ๋ณด๋ผ๋ ์๋ฏธ๋ก GET ๋๋ HEAD์ด๋ฉด 304 (Not Modified) ์ํ ์ฝ๋, ๊ธฐํ ๋ชจ๋ ์์ฒญ ๋ฉ์๋์ ๋ํด 412 (Precondition Failed) ์ํ ์ฝ๋๋ก ์๋ต ์๋ตํ๋ค.
๋ณ๊ฒฝ๋๋ค๋ฉด, 200 ์ํ ์ฝ๋์ ํจ๊ป ์๋ก์ด Etag๊ฐ ์๋ต ํค๋์ ์ ์กํ๋ค.
๋ธ๋ผ์ฐ์ ๋ 200์ผ ๊ฒฝ์ฐ ์๋ก ๋ค์ด ๋ฐ์ ํ Etag๊ฐ์ ๊ฐฑ์ ํ๋ฉฐ,
[ << ๋น์นธ >> ], [ << ๋น์นธ >> ] ์ผ ๊ฒฝ์ฐ ์บ์ฌ์์ ๋ก๋ํ๋ค.
(7) Last-Modified์ Etag๊ฐ ๋์์ ์กด์ฌํ๋ฉด Last-Modified์ ์ฐ์ ์์๊ฐ ๋๋ค. ( O / X )
(8) ๋ค์ ํ์ดํ์ ๋ค์ด๊ฐ ์ํ์ฝ๋๋?
304 (Not Modified)
Last updated