HTTP ๋ฉ์๋
- ์ข ๋ฅ
GET
- ์์ฒญ์ด ์บ์๋๋ค.
- ๋ธ๋ผ์ฐ์ , ๋ก๋ด์ด ์์๋ก ์์ฒญ์ด ๊ฐ๋ฅํ๋ค.
Conditional GET
-
ํด๋ผ์ด์ธํธ๋ ์ด์ ์ ํ๋ฒ ์์ฒญํด์ ๋๋ ค๋ฐ์ ๋ฆฌ์์ค์ ๋ํด ๋ค์ํ๋ฒ ์์ฒญ์ ํ ๋, ๋ถํ์ํ ํธ๋ํฝ์ ์ค์ด๊ธฐ ์ํด, ํด๋น ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง ๋ค์ ๋ณด๋ด๋ฌ๋ผ๊ณ ์์ฒญํ ์ ์๋ค.
-
์ด๋ฌํ ๋ฐฉ๋ฒ๋๋ฌธ์ ์ค์ ๋ก ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ ๋, ๋ชจ๋ ์์ฒญ์ด ์๋ฒ๋ก ๋ค์ด๊ฐ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง๋ค.
-
์ธ์ ์ฌ์ฉํ ๊น?
-
ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์น ํ์ด์ง ์ ๊ทผ ํ, ๋ค์ ๊ฐ์ ํ์ด์ง ์ ๊ทผํ์ ๋, ์๋ฒ๊ฐ ๊ทธ ํ์ด์ง์ ๋ชจ๋ ๋ด์ฉ์ ๋ค์ ์ ์กํ๋ ๊ฒ์ ๋ญ๋น์ด์ง ์๋?
-
์น ํ์ด์ง์ ๋ด์ฉ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด, ํ์ด์ง ๋ด์ฉ ์ ์ก์ ํ์์์ง ์์๊น?
-
์ด๋ฐ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค๋ฉด ๋ฌด์์ ๊ธฐ์ตํด๋์ด์ผ ํ ๊น?
-
์ธ์ ๋ง์ง๋ง์ผ๋ก ํด๋น ๋ฆฌ์์ค๋ฅผ ์์ฒญํด์ ๋ฐ์๋์ง (Timestamp)
-
ํด๋น ํ์ด์ง์ ์ ํจ์๊ฐ
- ์ด๋ค ๋ฆฌ์์ค์ ํ์ฉํ๋ฉด ์ข์๊น?
- ์ด๋ฏธ์ง, js, css
- Timestamp, validtime ํจ๊ป
- HTML (X)
- ์กฐ๊ธ๋ง ๋ณ๊ฒฝ๋๋ ๋ค๋ฅธ ์์์ ๋ฐ๋๋ก ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ
- User ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ
- ์ ๋งคํจ
๋ฌธ๋ฒ
-
-
Last-Modified
: HTTP-Date- ์๋ต ํค๋
- Last-Modified๋ Date๋ณด๋ค ์ดํ์ฌ์๋ ์๋๋ค(Must Not)
- ๋ฏธ๋์์ ๋ฆฌ์์ค๊ฐ ์ฌ ์๋ ์์ผ๋๊น
-
expires
-
age
-
cache-control
-
If-Modified-Since
: HTTP-Date-
์์ฒญ ํค๋
-
๋ง์ฝ ํด๋น Date๋ณด๋ค Modified๊ฐ ์ดํ๋ผ๋ฉด (ํด๋น ์์ฒญ์์ ์ดํ์ ์์ ๋์๋ค๋ฉด)
-
200 OK
-
๊ทธ๋ ์ง ์๋ค๋ฉด
-
304 Not Modified
-
Body๊ฐ ์๋ค.
Etag
- ์์์ ์์ ์ด ๊ฐํด์ก๋์ง ํ์ธํ ์ ์๋ ๋ฌธ์์ด
- Weak eTag (W/โsyzzyโ)
- ๋ฆฌ์์ค์ ์๋ฏธ์๋ ์์ค์ ๋ณํ๊ฐ ์๋ค๋ฉด ๋ฐ๋์ง ์์ ์ ์์
- String eTag (โxyzzyโ)
- ๋ฆฌ์์ค๊ฐ ์กฐ๊ธ์ด๋ผ๋ ๋ณํ๋ฉด ๋ฐ๋์ด์ผ ํ๋ค.
- ๋ฌธ๋ฒ
- ์์ฒญ ํค๋
If-None-Match
: a6f305a
- ์๋ต ํค๋
ETag
: a8g943l
- ์์ฒญ ํค๋
POST
-
-
์์ฑ
-
์์ฑ์์ ์ GET์ผ๋ก ๋ณด๋ผ ๊ฒฝ์ฐ, ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๊ฐ์ ์ค์ํ ์ ๋ณด๊ฐ ์บ์๋๊ณ (๋ณด์์ ์ผ๋ก ๋์จ), ๋ก๋ด์ ์์ ์์ฒญ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ข์ง ์๋ค.
PUT
-
POST์์ ์ฐจ์ด
- ๋ฆฌ์์ค์ ์์น๋ฅผ ์๊ณ ์์ ๋ ์ฌ์ฉ
-
์์ฑํ๊ฑฐ๋, ๋์ฒด(์ ์ฒด) ํ ๋ ์ฌ์ฉ
-
์ ์ฒด ์ ๋ฐ์ดํธ
PATCH
- ๋ฆฌ์์ค์ ์์น๋ฅผ ์๊ณ ์์ ๋ ์ฌ์ฉ
- ๋ถ๋ถ์ ์ธ ์ ๋ฐ์ดํธ
DELETE
- ๋ฆฌ์์ค ์ญ์ ์์ฒญ
OPTIONS
- ์ด๋ ํ ๋ฆฌ์์ค๋ฅผ ๋์์ผ๋ก ์ด๋ค ๋์์ ํ ์ ์๋์ง ๋์ ธ๋ณผ ๋ ์ฌ์ฉ
- Allow๋ผ๋ header๋ก OPTIONS, GET, HEAD ์ด๋ฐ์์ผ๋ก ์๋ ค์ค
HEAD
- Body๋ ์๊ณ HEAD๋ง ์ค๋ ์์ฒญ
TRACE
- ํด๋น ๋ฆฌ์์ค๋ฅผ ๊ฐ๊ธฐ ์ํด ์ด๋ค ํ๋ก์๋ฅผ ํ๊ณ ๊ฐ๋์ง ๋ณด์ฌ์ค
CONNECT
- SSL ํฐ๋๋ง ๋ฑ ํน์ ์ฉ๋์ ์ฌ์ฉํ๋ ๋ฉ์๋
Attributes
- ๋ฉฑ๋ฑ์ฑ
- ์ฌ๋ฌ๋ฒ ์์ฒญํด๋ ํจ๊ณผ๋ ํ๋ฒ ์์ฒญํ ๊ฒ๊ณผ ๊ฐ์
- ์์ ์ฑ
- ์ฌ๋ฌ๋ฒ ์์ฒญ ๊ฑธ์ด๋ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ
- GET, HEAD์ ๊ฐ์ ๋ฉ์๋๋ ๋ฆฌ์์ค์ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ์์
- ๊ทธ๋ ์ง ์์ ๋ฉ์๋ ๊ฐ์ ๊ฒฝ์ฐ Non Safe Method
Summary
|Method|์์ ์ฑ|๋ฉฑ๊ธ์ฑ|ํน์ง| |:----:|:-:------|:-:------|:-----| |GET|O|O|| |POST|X|X|์์ฑ์ด๊ธฐ ๋๋ฌธ์ ๋ฉฑ๊ธ์ฑ์ ๋ง์กฑํ๊ธฐ ๋ชปํจ| |PUT|X|O|์ ๋ณด๋ฅผ ๋ฐ๊พธ๋ ๊ฒ ๊ฐ๋ฅ, ๊ทธ๋ ์ง๋ง ์ ์ฒด๋ฅผ ๋ณด๋ด์ผ ํจ, ์ ์ฒด๋ฅผ ํญ์ ์ ๋ฐ์ดํธ ํ๊ธฐ ๋๋ฌธ์ ๋ฉฑ๊ธ์ฑ ๋ง์กฑ| |PATCH|X|X|์๋ฒ ๋ฆฌ์์ค๋ฅผ ์์ , ๋ฆฌ์์ค์ ๋ด์ฉ์ด ์ด๋ ๋์ ๋ฐ๋ผ ๋ถ๋ถ์ ๊ฒฐ๊ณผ๋ง ๋ฐ๋๊ธฐ ๋๋ฌธ์ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ ์ ์์| |HEAD|||GET ์์ฒญ์ ์ด๋ค ํค๋๋ค์ ๋ฐ๋์ง ์๋ ค์ค (GET๊ณผ ๊ฐ์ผ๋ ๋ณธ๋ฌธ ์์)| |TRACE|||์์ฒญ์ด ์๋ฒ์ ๋ค๋ ๋ค๊ฐ ์๋ต ๋ฐํ๊น์ง ๊ฑฐ์น๋ ํ๋ก์๋ฅผ ์๋ ค์ค| |OPTIONS|||ํน์ URL์ ๋ํ ์ต์ ๋ค์ ์๋ ค์ค, ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ์๋ ๋ฐํ| |DELETE|X|O|์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ญ์ , ๊ฐ์ ๋ฆฌ์์ค๊ฐ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฉฑ๊ธ์ฑ ๋ง์กฑ|