- ๋ฉ์์ง๊ฐ ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๋๊ฐ
- HTTP ๋ฉ์์ง์ ์ธ ๋ถ๋ถ(์์์ค, ํค๋, ๊ฐ์ฒด ๋ณธ๋ฌธ)
- ์์ฒญ๊ณผ ์๋ต ๋ฉ์์ง์ ์ฐจ์ด
- ์์ฒญ ๋ฉ์์ง๊ฐ ์ง์ํ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ(๋ฉ์๋)๋ค
- ์๋ต ๋ฉ์์ง๊ฐ ๋ฐํํ๋ ์ฌ๋ฌ ์ํ ์ฝ๋๋ฃ
- ์ฌ๋ฌ HTTP ํค๋๋ค์ ๋ฌด์จ ์ผ์ ํ๋๊ฐ
- ๋ฉ์์ง๋ (ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์) ์์ฒญ ๋ฉ์์ง๋ (์๋ฒ๋ก๋ถํฐ์) ์๋ต ๋ฉ์์ง๋ก ๋ถ๋ฅ๋๋ค.
- Message๋ RequestLine/ResponseLine, Header, EntityBody๋ก ๊ตฌ์ฑ๋๋ค.
- RequestLine/ResponseLine๊ณผ Header๋ ์ค๋ฐ๊ฟ ๋ฌธ์์ด๋ก ๋๋๋ค.
- EntityBody๋ Text๋ Binary Data๋ฅผ ํฌํจํ ์๋ ์๊ณ ๊ทธ๋ฅ ๋น์ด์์ ์๋ ์๋ค.
- Header๋ EntityBody์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ค.
- Copntent-Type์ ๋ณธ๋ฌธ์ด ๋ฌด์์ธ์ง ์๋ ค์ค๋ค.
- Content-Length๋ ๋ณธ๋ฌธ์ ํฌ๊ธฐ๋ฅผ ๋งํด์ค๋ค.
- RequestMessage๋ ์น ์๋ฒ์ ์ด๋ค ๋์์ ์๊ตฌํ๋ค.
- RequestMessage๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
<๋ฉ์๋> <์์ฒญ URL> <๋ฒ์ >
<ํค๋>
<์ํฐํฐ ๋ณธ๋ฌธ>
- Method, RequestURL, Version์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ๊ฐ ํ๋๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ค.
- ์๋ฒ๊ฐ ๋ฆฌ์์ค์ ๋ํด ์ํํด์ฃผ๊ธธ ๋ฐ๋ผ๋ ๋์
๋ฉ์๋ | ์ค๋ช | ๋ฉ์์ง ๋ณธ๋ฌธ์ด ์๋๊ฐ? |
---|---|---|
GET | ์๋ฒ์์ ์ด๋ค ๋ฌธ์๋ฅผ ๊ฐ์ ธ์จ๋ค. | |
HEAD | ์๋ฒ์์ ์ด๋ค ๋ฌธ์์ ๋ํด ํค๋๋ง ๊ฐ์ ธ์จ๋ค. | |
POST | ์๋ฒ๊ฐ ์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค. | O |
PUT | ์๋ฒ์ ์์ฒญ ๋ฉ์์ง์ ๋ณธ๋ฌธ์ ์ ์ฅํ๋ค. | O |
TRACE | ๋ฉ์์ง๊ฐ ํ๋ฝ์๋ฅผ ๊ฑฐ์ณ ์๋ฒ์ ๋๋ฌํ๋ ๊ณผ์ ์ ์ถ์ ํ๋ค. | |
OPTIONS | ์๋ฒ๊ฐ ์ด๋ค ๋ฉ์๋๋ฅผ ์ํํ ์ ์๋์ง ํ์ธํ๋ค. | |
DELETE | ์๋ฒ์์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๋ค. |
-
GET๊ณผ HEAD ์์ฒญ์ผ๋ก ์๋ฒ์ ์ด๋ค ์์ฉ๋ ์์ผ๋ฏ๋ก ์์ ํ๋ค.
-
HEAD๋ GET์ฒ๋ผ ํ๋ํ์ง๋ง ์๋ฒ๋ ์๋ต์ผ๋ก ํค๋๋ง ๋๋ ค์ค๋ค. (์ํฐํฐ ๋ณธ๋ฌธ์ ๋ฐํํ์ง ์๋๋ค.)
- ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค์ง ์๊ณ ๋ ์ํ์ฝ๋๋ฅผ ํตํด ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋์ง, ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ๊ฒ์ฌํ ์ ์๋ค.
-
PUT์ ์๋ฒ๊ฐ ์์ฒญ์ ๋ณธ๋ฌธ์ ๊ฐ์ง๊ณ ์์ฒญ URL์ ์ด๋ฆ๋๋ก ์ ๋ฌธ์๋ฅผ ๋ง๋ค๊ฑฐ๋, ์ด๋ฏธ URL์ด ์กด์ฌํ๋ค๋ฉด ๋ณธ๋ฌธ์ ์ฌ์ฉํด์ ๊ต์ฒดํ๋ค.
-
POST๋ ์๋ฒ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ค๊ณ๋์๋ค.
-
TRACE ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์์ฒญ์ ํ ๋, ๊ทธ ์์ฒญ์ ๋ฐฉํ๋ฒฝ, ํ๋ฝ์, ๊ฒ์ดํธ์จ์ด ๋ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํต๊ณผํ ์ ์๋ค. ์ด๋ค์๊ฒ๋ ์๋์ HTTP ์์ฒญ์ ์์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์๋ค. TRACE๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์ ์ ์์ฒญ์ด ์๋ฒ์ ๋๋ฌํ์ ๋ ์ด๋ป๊ฒ ๋ณด์ด๊ฒ ๋๋์ง ์๋ ค์ค๋ค.
๋ชฉ์ ์ง ์๋ฒ์์ loopback ์ง๋จ์ ์์ํ๋ค. ํ๋ฝ์๋ POST ์์ฒญ์ ๋ฐ๋ก ์๋ฒ๋ก ํต๊ณผ์ํค๋ ๋ฐ๋ฉด GET ์์ฒญ์ ์น ์บ์์ ๊ฐ์ด ๋ค๋ฅธ HTTP ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ์กํ๋ค. TRACE๋ ๋ฉ์๋๋ฅผ ๊ตฌ๋ณํ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง ์๋๋ค.
client >> proxy TRACE /product-list.txt HTTP/1.1 Accept: * Host: www.joes-hardware.com proxy >> www.joes-hardware.com server TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via 1.1 proxy3.company.com server >> proxy HTTP/1.1 200 OK Content-type: text/plain Conent-length: 96 TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via 1.1 proxy3.company.com proxy >> client HTTP/1.1 200 OK Content-type: text/plain Conent-length: 96 TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via 1.1 proxy3.company.com
-
OPTIONS๋ ์น ์๋ฒ์๊ฒ ํน์ ๋ฆฌ์์ค์ ๋ํด ์ด๋ค ๋ฉ์๋๊ฐ ์ง์๋๋์ง ๋ฌผ์ด๋ณธ๋ค.
-
DELETE๋ ์ง์ ํ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ ๊ฒ์ ์์ฒญํ๋ค.
- ์์ฒญ ๋์์ด ๋๋ ๋ฆฌ์์ค๋ฅผ ์๋ฏธํ๋ค.
- ์์ ํ URL์ด ์๋ ๊ฒฝ์ฐ ํธ์คํธ/ํฌํธ๊ฐ ์์ ์ ๊ฐ๋ฆฌํค๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ค.
HTTP/<๋ฉ์ด์ >.<๋ง์ด๋>
- Major, Minor ๋ชจ๋ ์ ์์ด๋ค.
- ResponseMessage๋ ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋๋ ค์ค๋ค.
- ResponseMessage๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
<๋ฒ์ > <์ํ์ฝ๋> <์ฌ์ ๊ตฌ์ >
<ํค๋>
<์ํฐํฐ ๋ณธ๋ฌธ>
- Version, StatusCode, ReasonPhrase
- ๊ฐ ํ๋๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ค.
- ์์ฒญ ์ค์ ๋ฌด์์ด ์ผ์ด๋ฌ๋์ง๋ฅผ ์ค๋ช ํ๋ ์ธ์๋ฆฌ ์ซ์
์ ์๋ ๋ฒ์ | ๋ถ๋ฅ |
---|---|
100-101 | ์ ๋ณด |
200-206 | ์ฑ๊ณต |
300-305 | ๋ฆฌ๋ค์ด๋ ์ |
400-415 | ํด๋ผ์ด์ธํธ ์๋ฌ |
500-505 | ์๋ฒ ์๋ฌ |
- ์ซ์๋ก ๋ ์ํ ์ฝ๋์ ์๋ฏธ๋ฅผ ์ค๋ช ํ๋ ์งง์ ๋ฌธ๊ตฌ
-
์ด๋ฆ/๊ฐ ์์ ๋ชฉ๋ก์ด๋ค.
-
์ผ๋ฐ ํค๋, ์์ฒญ ํค๋, ์๋ต ํค๋, ์ํฐํฐ ํค๋ ๋ฑ์ด ์๋ค.
- Header๋ EntityBody๊ฐ ์๋๋ผ๋ HTTP Header ์งํฉ์ ํญ์ ๋น ์ค๋ก ๋๋์ผ ํ๋ค.