DevLog ๐ถ
[Network] ์น ๋ธ๋ผ์ฐ์ ์์ฒญ๊ณผ HTTP ๋ฆฌํ์คํธ ๋ณธ๋ฌธ
โ๏ธ URL ์ ๋ ฅ๊ณผ ํจํท ์ฌํ
๊ต์ฌ์ ๋์์๋ ๋ด์ฉ์ด์ง๋ง ๋๋ฆ ์ ๋ฆฌํด๋ณด๊ณ ์ถ์ด์ ๋ค์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด์๋ค.
ํด๋ผ์ด์ธํธ, ์น ์๋ฒ LAN, ์น ์๋ฒ๊น์ง ํ ๋ฒ ๋์๋ณด๋ฉด์ ์ ๋ฆฌ๋ฅผ ํ ๋ค์, ์๊ฐ์ด ๋ ๋ ํ๋ธ๋ ํ์ ์ชฝ์ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค.
(์ฑ๊ณต๊ณผ ์คํจ๋ฅผ ๊ฒฐ์ ํ๋ 1% ์ ๋คํธ์ํฌ ์๋ฆฌ๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค :D)
โ๏ธ ์ฌ์ฉ์๊ฐ URL์ ์ ๋ ฅํ์ ๋ ์๊ธฐ๋ ์ผ
URL์ด๋ ๋ฌด์์ผ๊น? Uniform Resource Locator๋ก, http://๋ก ์์ํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ file:, ftp:, mailto: ๋ฑ๋ฑ ๋ค์ํ ์ข ๋ฅ์ ๊ฒ์ผ๋ก ์์ํ๋ URL๋ค์ด ์กด์ฌํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋จ์ํ ์น ์๋ฒ์ ์์ธ์ค ํ๋ ์ญํ ๋ง ํ๋ ๊ฒ์ด ์๋, ํ์ผ ๋ค์ด๋ก๋, ์ ๋ก๋ ๊ฐ์ FTP ํด๋ผ์ด์ธํธ๋ ๋ฉ์ผ ํด๋ผ์ด์ธํธ ๊ธฐ๋ฅ๋ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ข ๋ฅ์ URL์ ํตํด ์ด๋ป๊ฒ ๋ฐ์ดํฐ์ ์์ธ์คํ ์ง ๊ฒฐ์ ํ๊ฒ ๋๋ค.
๋ํ์ ์ผ๋ก ๋ช ๊ฐ์ง์ URL ํ์์ ์ดํด๋ณด์.
1) HTTP ํ๋กํ ์ฝ
http://user:password@www.cyber.co.kr:80/dir/file1.html
user: ์ฌ์ฉ์๋ช (์๋ต ๊ฐ๋ฅ)
password: ํจ์ค์๋ (์๋ต ๊ฐ๋ฅ)
www.cyber.co.kr: ์น ์๋ฒ์ ๋๋ฉ์ธ๋ช
80: ํฌํธ ๋ฒํธ (์๋ต ๊ฐ๋ฅ)
dir/file1.html: ํ์ผ์ ๊ฒฝ๋ก๋ช
2) FTP ํ๋กํ ์ฝ - ํ์ผ ๋ค์ด๋ก๋ / ์ ๋ก๋
ftp://user:password@ftp.cyber.co.kr:80/dir/file1.html
user: ์ฌ์ฉ์๋ช (์๋ต ๊ฐ๋ฅ)
password: ํจ์ค์๋ (์๋ต ๊ฐ๋ฅ)
ftp.cyber.co.kr: ftp ์๋ฒ์ ๋๋ฉ์ธ๋ช
80: ํฌํธ ๋ฒํธ (์๋ต ๊ฐ๋ฅ)
dir/file1.html: ํ์ผ์ ๊ฒฝ๋ก๋ช
3) ๋ก์ปฌ ํ์ผ์ ๋ฐ์ดํฐ ์ฝ๊ธฐ
file://localhost/c:path/file1.html
localhost: ์ปดํจํฐ๋ช (์๋ต ๊ฐ๋ฅ)
/c:path/file1.html: ํ์ผ์ ๊ฒฝ๋ก๋ช
์ฐ๋ฆฌ๋ URL์ด ์ด๋ค ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ์๊ฒ ๋์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์ URL์ ์ ๋ ฅํ์ ๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ์๊ฐํด๋ณด์.
๐ฑ ๋ธ๋ผ์ฐ์ - URL ํด๋ ํ๊ธฐ
๋จผ์ , ์๊น ์์ ๊ทธ๋ฆผ์์ ๋ดค๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ์๊ฐ URL์ ์ ๋ ฅํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ํด์ํ์ฌ HTTP ๋ฉ์์ง๋ฅผ ๋ง๋ ๋ค.
URL์ ํด๋ ํ ๋๋ ํฌ๊ฒ ํ๋กํ ์ฝ / ์น ์๋ฒ / ๊ทธ๋ฆฌ๊ณ ํ์ผ์ ๊ฒฝ๋ก๋ช ์ผ๋ก ๋๋๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , '์น ์๋ฒ์ ์๋' ~~๋ผ๋ 'ํ์ผ'์ ์์ธ์คํ๋ค๋ ์๋ฏธ๋ก URL์ ๊ตฌ์ฑํ๊ฒ ๋๋ค.
http://www.wootecho.co.kr/dir/file1.html
-> ์ฌ๊ธฐ์ /dir/file1.html์ ํ์ผ๋ช ์ ์๋ฏธํ๋ฉฐ, ์๋ต์ด ๊ฐ๋ฅํ๋ค.
ํ์ผ๋ช ์ ์๋ตํ๋ค๋ฉด, ์๋ฒ๋ ์ด๋ค ํ์ผ์ ์์ธ์ค๋ฅผ ํด์ผ ํ ๊น?
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ์์๋ ํ์ผ๋ช ์ ์๋ตํ ๋๋ฅผ ๋๋นํ์ฌ (๋๋ถ๋ถ์ ๊ฒฝ์ฐ) index.html์ด๋ default.html์ ์ค์ ํด๋๋ค.
http://www.google.com
์์ url์์๋ ๋๋ ํฐ๋ฆฌ์ ํ์ผ๋ช ๊น์ง ํจ๊ป ์๋ตํ ๊ฒฝ์ฐ์ด๋ค.
์ด ๊ฒฝ์ฐ ๋๋ ํฐ๋ฆฌ๋ ๋ฃจํธ (/)๋ก ์ค์ ์ด ๋๊ณ , ํด๋น ๋๋ ํฐ๋ฆฌ ํ์์ ์ค์ ๋ ํ์ผ์ ์์ธ์คํ๊ฒ ๋๋ค.
๐ฑ HTTP๊ฐ ๋ฌด์์ผ๊น?
HTTP ํ๋กํ ์ฝ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง์ ๋ด์ฉ์ด๋ ์์๋ฅผ ์ ํ ๊ฒ์ด๋ค.
ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก request message๋ฅผ ๋ณด๋ด๋๋ฐ, ์ด๋ ๋ฉ์์ง ์์๋ '๋ฌด์์', '์ด๋ป๊ฒ' ํ ์ง ์ ํ์๋ค.
๊ทธ๋ฆฌ๊ณ , ์ฌ๊ธฐ์ '๋ฌด์์'์ ํด๋นํ๋ ๊ฒ์ด URI์ด๋ฉฐ, ๋ณดํต CGI ํ๋ก๊ทธ๋จ์ ํ์ผ๋ช ์ URI๋ก ์ฌ์ฉํ๋ค.
(CGI ํ๋ก๊ทธ๋จ = ์น ์๋ฒ์ ์ธ๋ถ ํ๋ก๊ทธ๋จ ์ฌ์ด์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒ์ด๋ ๊ท์ฝ์ ์งํจ ํ๋ก๊ทธ๋จ - ex. /dir1/file1.html)
๋ฌผ๋ก , URI๋ก URL์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ด๋์ ์์ธ์ค ํ ์ง๋ฅผ ์ ํ๋ ๊ฒ URI๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
'์ด๋ป๊ฒ'์ ํด๋นํ๋ ๊ฒ์ Http method์ด๋ค. ์น ์๋ฒ์๊ฒ ์ด๋ค ๋์์ ํ๊ณ ์ถ์์ง ์ ๋ฌํ๋ ๊ฐ๋ ์ด๋ค.
๋ํ์ ์ธ HTTP method์ ๋ํด์ ์์๋ณด์.
๋ฉ์๋ | ์๋ฏธ |
GET | URI๋ก ์ง์ ํ ์ ๋ณด๋ฅผ ๋์ถํ๋ค. ํ์ผ์ ๊ฒฝ์ฐ ํด๋น ํ์ผ์ ๋ด์ฉ์ ๊ทธ๋๋ก, CGI ํ๋ก๊ทธ๋จ์ ํด๋น ํ๋ก๊ทธ๋จ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค. |
POST | ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ค. |
HEAD | HTTP ๋ฉ์๋ ํค๋๋ง ๋ฐ์กํ๊ณ , ๋ฐ์ดํฐ์ ๋ด์ฉ์ ๋๋ ค๋ณด๋ด์ง ์๋๋ค. |
OPTIONS | ํต์ ์ต์ ์ ํต์งํ๊ฑฐ๋ ์กฐ์ฌํ ๋ ์ฌ์ฉํ๋ค. |
PUT | URI๋ก ์ง์ ํ ์๋ฒ์ ํ์ผ์ ์นํํ๋ค. ํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ ์๋ก ํ์ผ์ ์์ฑํ๋ค. |
DELETE | URI๋ก ์ง์ ํ ์๋ฒ์ ํ์ผ์ ์ญ์ ํ๋ค. |
TRACE | ์๋ฒ์ธก์์ ๋ฐ์ ๋ฆฌํ์คํธ ๋ผ์ธ๊ณผ ํค๋๋ฅผ ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ์ ๋ฐ์กํ๋ค. ํ๋ก์ ์๋ฒ ๋ฑ์ ์ฌ์ฉํ ๋ ๋ฆฌํ์คํธ๊ฐ ์นํ๋๋ ์ํ๋ฅผ ์กฐ์ฌํ ๋ ์ฌ์ฉํ๋ค. |
CONNECT | ์ํธํํ ๋ฉ์์ง๋ฅผ ํ๋ก์๋ก ์ ์กํ ๋ ์ด์ฉํ๋ค. |
๊ทธ๋ฆฌ๊ณ , ๋ฆฌํ์คํธ ๋ฉ์์ง๊ฐ ์น ์๋ฒ์ ๋์ฐฉํ๋ฉด ์น ์๋ฒ๋ ์์ ์ฐ์ฌ์๋ ๋ด์ฉ์ ํด๋ ํ๋ค.
๋ด์ฉ์ ๋ฐ๋ผ ๋์์ ํ๊ณ , ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์๋ต ๋ฉ์์ง์ ์ ์ฅํ๋๋ฐ, ์ด๋ ๋งจ ์๋ถ๋ถ์๋ ์คํ ๊ฒฐ๊ณผ์ ๋ํ ์ํ๋ฅผ ๋ํ๋ด๋ ์ํ ์ฝ๋๋ฅผ ์ ์ฅํ๋ค. (ex. 200, 400, 404, 500...)
์ด ๋ถ๋ถ๋ ๋ด์ฉ์ด ๋ง์ง๋ง, ๋คํธ์ํฌ์ ๊ฐ๋ก ์ ๋ค๋ฃจ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ๋ด์ฉ์ ์๋ตํ๋๋ก ํ๊ฒ ๋ค.
๐ฑ HTTP ๋ฆฌํ์คํธ ๋ฉ์์ง ๋ง๋ค๊ธฐ
์ฐ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ url์ ์ ๋ ฅํ๋ฉด, ๋ธ๋ผ์ฐ์ ๊ฐ url์ ํด๋ ํ์ฌ Http ๋ฉ์์ง๋ฅผ ๋ง๋ ๋ค๊ณ ํ์๋ค.
์ด๋, ๋ฉ์์ง๋ ๊ทธ๋ฅ ์ฐ๋ ๊ฒ์ด ์๋, ๋ณ๋์ ํฌ๋งท์ ๋ง๊ฒ ์์ฑํ๊ฒ ๋๋ค.
1) request message
<๋ฉ์๋><๊ณต๋ฐฑ><URI><๊ณต๋ฐฑ><HTTP ๋ฒ์ >
<ํ๋๋ช >:<ํ๋๊ฐ>
...
<๊ณต๋ฐฑ ํ>
<๋ฉ์์ง ๋ณธ๋ฌธ>
์์ฒญ ๋ฉ์์ง๋ ์์ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ฒซ ๋ฒ์งธ ํ์ request line์ผ๋ก, ์์ request์ ๋ํ ๋๋ต์ ์ธ ์ ๋ณด๋ค์ด ๋ด๊ฒจ์๋ ํ์ด๋ค.
๊ทธ ๋ค์๋ถํฐ ๊ณต๋ฐฑ๊น์ง๋ header๋ก, ํ ํ๋ง๋ค ํ ๊ฐ์ ํค๋ ํ๋๋ฅผ ์์ฑํ๋ค.
๋ง์ง๋ง ๋ถ๋ถ์ message body๋ก, ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ์ก์ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ค.
2) response message
<HTTP ๋ฒ์ ><๊ณต๋ฐฑ><์ํ ์ฝ๋><๊ณต๋ฐฑ><์๋ต ๋ฌธ๊ตฌ>
<ํ๋๋ช >:<ํ๋๊ฐ>
...
<๊ณต๋ฐฑ ํ>
<๋ฉ์์ง ๋ณธ๋ฌธ>
์๋ต ๋ฉ์์ง๋ ์์ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์ฒซ ๋ฒ์งธ ํ์ status line์ผ๋ก, ์๋ต ์ฝ๋์ ๋ํ ๋ด์ฉ์ ๋ํ๋ธ๋ค.
๊ทธ ๋ค์๋ถํฐ ๊ณต๋ฐฑ๊น์ง๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉ์์ง ํค๋๊ณ , ๋ง์ง๋ง ๋ถ๋ถ์ ๋ฐ๋๊ฐ์ผ๋ก ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ก์ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ค.
message header์ ๊ฒฝ์ฐ ๋ ์ง(date), ํด๋ผ์ด์ธํธ ์ธก์ด ์ทจ๊ธํ๋ ๋ฐ์ดํฐ ์ข ๋ฅ (Accept), ์ธ์ด (Language), ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ํํธ์จ์ด ๋ช ์นญ๊ณผ ๋ฒ์ , ๋ฐ์ดํฐ ์ ํจ ๊ธฐ๊ฐ ๋ฑ์ ๋ค์์ ํญ๋ชฉ๋ค์ด ์กด์ฌํ๋ค.
ํค๋ ์ด๋ฆ | ์ค๋ช |
General Header: ์์ฒญ - ์๋ต ์์ชฝ์ ์ฌ์ฉ | |
Date | ์์ฒญ - ์๋ต์ด ์์ฑ๋ ๋ ์ง |
Pragma | ๋ฐ์ดํฐ์ ์บ์ ํ์ฉ ์ฌ๋ถ |
Cache-Control | ์ผ์ ์ ์ด๋ฅผ ์ํ ์ ์ต |
Connection | ์๋ต ์ก์ ํ TCP ์ปค๋ฅ์ ์ ์ ์งํ ์ง, ๋์์ง ์ต์ |
Transfer-Encoding | ๋ฉ์์ง ๋ฐ๋์ ์ธ์ฝ๋ฉ ํ์ ์ง์ |
Via | ๋์ค์ ๊ฒฝ์ ํ ํ๋ก์๋ ๊ฒ์ดํธ์จ์ด ๊ธฐ๋ก |
Request Header - ์์ฒญ์ ๋ํ ๋ถ๊ฐ ์ ๋ณด | |
Authorization | ์ฌ์ฉ์ ์ธ์ฆ์ฉ ๋ฐ์ดํฐ |
From | ๋ฆฌํ์คํธ ๋ฐ์ ์์ ๋ฉ์ผ ์ฃผ์ |
If-Modified-Since | ์ง์ ํ ๋ ์ง ์ดํ ์ ๋ณด๊ฐ ๊ฐฑ์ ๋ ๊ฒฝ์ฐ๋ง ๋ฆฌํ์คํธ๋ฅผ ์คํํ ๋, ์ด ํ๋์ ๋ ์ง๋ฅผ ์ง์ ํ๋ฉด ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์บ์์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ๋น๊ตํ๊ณ , ์๋ก์ด ์ ๋ณด๋ก ๊ฐฑ์ ํ ๋ ์ฌ์ฉํ๋ ํ๋ |
Referer | ํ์ดํผ๋งํฌ๋ฅผ ๊ฑฐ์ณ ์ด๋ ํ์ด์ง๋ฅผ ์ฝ์ ๊ฒฝ์ฐ, ๋งํฌ ๋์ URI๋ฅผ ๋ํ๋ด๋ ํ๋ |
User-Agent | ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด์ ๋ช ์นญ์ด๋ ๋ฒ์ ์ ๋ณด |
Accept | ํด๋ผ์ด์ธํธ ์ธก์ด Content-Type์ผ๋ก ๋ฐ๋ ๋ฐ์ดํฐ ์ข ๋ฅ |
Accept-Charset | ํด๋ผ์ด์ธํธ์ธก์ด ๋ฐ์ ๋ฌธ์ ์ฝ๋ ์ธํธ |
Accept-Encoding | ํด๋ผ์ด์ธํธ์ธก์ด Content-Encoding์ผ๋ก ๋ฐ์ ์ธ์ฝ๋ฉ ๋ฐฉ์ |
Accept-Language | ํด๋ผ์ด์ธํธ์ธก์ด ๋ฐ๋ ์ธ์ด์ ์ข ๋ฅ |
Host | ๋ฆฌํ์คํธ๋ฅผ ๋ฐ๋ ์๋ฒ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ |
If-Match | Etag ์ฐธ์กฐ |
If-None-Match | Etag ์ฐธ์กฐ |
Range | ๋ฐ์ดํฐ ์ผ๋ถ๋ฅผ ์ฝ์ ๋ ๋ฒ์ ์ง์ |
Response Header - ์๋ต์ ๋ถ๊ฐ ์ ๋ณด๋ก ์ฌ์ฉ๋๋ ํค๋ ํ๋ | |
Location | ์ ๋ณด์ ์ ํํ ์ฅ์๋ฅผ ์ง์ ํ๋ค. ๋ฆฌํ์คํธ URI๊ฐ relative name๋ absolute name์ผ๋ก ํ์ ๋์ ์ ๋ณด์ ์์น๋ฅผ ํต์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค |
Server | ์๋ฒ ์ํํธ์จ์ด์ ๋ช ์นญ์ด๋ ๋ฒ์ ์ ๊ดํ ์ ๋ณด |
WWW-Authenticate | ์์ฒญํ ์ ๋ณด์ ๋ํด ์์ธ์ค๊ฐ ์ ํ๋์ด ์๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์ ์ธ์ฆ์ฉ ๋ฐ์ดํฐ ๋ฐ์ก |
Accept-Ranges | Range๋ฅผ ์ง์ ํ์ ๋ ์๋ฒ๊ฐ ํด๋น ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋์ง์ ๋ํ ์ฌ๋ถ |
Entity Header - message body์ ๋ถ๊ฐ ์ ๋ณด๋ก ์ฌ์ฉํ๋ ํค๋ ํ๋ | |
Allow | ์ง์ ํ URI๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ๋ํ๋ธ๋ค. |
Content-Encoding | message body์ ์์ถ ๋ฑ์ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ๊ฐ ๋์ด ์๋ ๊ฒฝ์ฐ, ํด๋น ๋ฐฉ์์ ๋ํ๋ธ๋ค. |
Content-Length | message body์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค |
Content-Type | message body๊ฐ ์ด๋ค ๋ฐ์ดํฐ์ธ์ง ์ข ๋ฅ๋ฅผ ๋ํ๋ธ๋ค |
Expires | message body์ ์ ํจ๊ธฐ๊ฐ์ ๋ํ๋ธ๋ค |
Last-Modified | ์ ๋ณด๋ฅผ ์ต์ข ์ ์ผ๋ก ๋ณ๊ฒฝํ ๋ ์ง |
Content-Language | message body์ ์ธ์ด |
Content-Location | message body๊ฐ ์๋ฒ์ ์ด๋์ ์๋์ง URI๋ก ํํ |
Content-Range | ์ผ๋ถ๋ง ๋ฆฌํ์คํธ ๋์์ ๋, ๋ฉ์์ง ๋ณธ๋ฌธ์ ์ด๋ ๋ฒ์์ ๋ฐ์ดํฐ๊ฐ ํํ๋์ด ์๋์ง ๋ํ๋ |
Etag | ์ด์ ๋ฆฌํ์คํธ์ ์๋ต์ ๋ฐํ์ผ๋ก ํ ๊ฐฑ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ฆฌํ์คํธ์์ ์ก์ ํ ๋, ์ด ๋์ ๊ด๋ จ์ํค๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ ๋ณด. ์ฟ ํค์ ๋น์ทํ ์ญํ ์ ํ๋ค. (์๋ฒ๊ฐ Etag์ ๊ฐ ์ ๋ฌ - ํด๋ผ์ด์ธํธ๋ If-Match ๊ฐ์ ํ๋๋ฅผ ํตํด ๊ฐ ํต์ง...) |
message body์ ๊ฒฝ์ฐ ๋ฉ์์ง์ ์ค์ ๋ด์ฉ์ ์๋ฏธํ๋ค.
๋จ, GET ์์ฒญ์ ๊ฒฝ์ฐ ๋ฉ์๋์ URI๋ก ์น ์๋ฒ๊ฐ ๋ฌด์์ ํ ์ง ํ๋จํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณธ๋ฌธ์ด ๋น์ด์๋ค. (ํค๋๊น์ง๋ง ์กด์ฌ)
๐ฑ ๋ฆฌํ์คํธ ๋ฉ์์ง์ ๋ฐ๋ฅธ ์๋ต ๋ฉ์์ง
์ด๋ฒ ์ฑํฐ์์๋ ๊ฐ๋ตํ๊ฒ ๋ฌด์์ธ์ง๋ง ๋ค๋ฃฌ๋ค.
์๋ต์ด ์ ์ ์ข ๋ฃ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง, ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์๋ต ์ฝ๋์ ์๋ต ๋ฌธ๊ตฌ๋ฅผ ์ฒซ ๋ฒ์งธ ํ์ ์์ฑํ๋ค.
์๋ต ์ฝ๋์ ๊ฒฝ์ฐ ์ซ์๋ก, ์๋ต ๋ฌธ๊ตฌ๋ ๋ฌธ์ฅ์ผ๋ก ์ฐ์ฌ์์ผ๋ฉฐ ํ๋ก๊ทธ๋จ๊ณผ ์ฌ๋์๊ฒ ๋ณด์ฌ์ง๋ ๊ฒ์ด ๊ฐ๊ฐ์ ๋ชฉ์ ์ด๋ค.
์ดํ ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐํ์ผ๋ก, ํ๋ฉด์ ํ์ํ๋ ์ญํ ๊น์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ญํ ์ด๋ค.
์ ๋ง ๊ฐ๋ตํ๊ฒ ๋ค๋ฃจ๊ณ ์์ด์ ๋๋ต์ ์ผ๋ก๋ง ์์ฑํ์๋ค.
๋์ค์ ์กฐ๊ธ ๋ ์์ธํ ๋ถ๋ถ์ ์์๋ด์ผ๊ฒ ๋ค...!