4. Request Methods
Last updated
Was this helpful?
Last updated
Was this helpful?
์์ฒญ ๋ฉ์๋ ํ ํฐ์ ์์ฒญ ์๋ฏธ๋ก ์ ์ฃผ ์์ค๋ก์, ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฌํ ์์ฒญ์ ํ ๋ชฉ์ ๊ณผ ์ฑ๊ณต์ ์ธ ๊ฒฐ๊ณผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ๋ํ๋ ๋ฐ๋ฅผ ๋ํ๋ธ๋ค.
HTTP๋ ์๋ ๋ถ์ฐ ๊ฐ์ฒด ์์คํ ์ ๋ํ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ค๊ณ๋์๋ค.๋ฉ์๋ ํ ํฐ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ๋ฉ์๋ ์ด๋ฆ์ ๊ฐ์ง ๊ฐ์ฒด ๊ธฐ๋ฐ ์์คํ ์ ๊ฒ์ดํธ์จ์ด๋ก ์ฌ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค.
๋ถ์ฐ๋ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ, ํ์ผํ๋ ์ธํฐํ์ด์ค๋ ๋คํธ์ํฌ ๊ธฐ๋ฐ ์์คํ [REST]์์ ๋ ๋์ ๊ฐ์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ ์ ๊ณตํ๋ฏ๋ก, HTTP์ ํ์คํ๋ ์์ฒญ ๋ฉ์๋๋ ๋ฆฌ์์ค์ ๊ตญํ๋ ๊ฒ์ด ์๋๋ค. ์ผ๋จ ์ ์๋๋ฉด, ํ์คํ๋ ๋ฉ์๋๋ ๊ฐ ๋ฆฌ์์ค์ ๊ทธ ์๋ฏธ๋ก ๋ค์ด ๊ตฌํ๋๊ฑฐ๋ ํ์ฉ๋๋์ง ์ค์ค๋ก ๊ฒฐ์ ํจ์๋ ๋ถ๊ตฌํ๊ณ , ์ด๋ค ๋ฆฌ์์ค์ ์ ์ฉ๋ ๋๋ ๋์ผํ ์๋ฏธ๋ก ๋ค์ ๊ฐ์ ธ์ผ ํ๋ค.
๋ชจ๋ ๋ฒ์ฉ ์๋ฒ๋ GET ๋ฐ HEAD ๋ฉ์๋๋ฅผ ์ง์ํด์ผ ํ๋ค. ๋ค๋ฅธ ๋ชจ๋ ๋ฉ์๋๋ ์ ํ์ฌํญ์ด๋ค. (OPTIONAL)
์์ฒญ ๋ฉ์๋๋ ์ ์๋ ์๋ฏธ๋ก ์ด ๋ณธ์ง์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ธ ๊ฒฝ์ฐ, ์ฆ ํด๋ผ์ด์ธํธ๊ฐ ๋์ ๋ฆฌ์์ค์ ์์ ํ ๋ฉ์๋๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ ์์๋ฒ์ ์ํ ๋ณ๊ฒฝ์ ์์ฒญํ์ง ์๊ณ ์์ํ์ง ์๋ ๊ฒฝ์ฐ โsafeโ๋ก ๊ฐ์ฃผ๋๋ค.
์ค์ํ ๊ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ ํ๋์ ์๊ตฌํ์ง ์์๊ณ ์ด์ ๋ํ ์ฑ ์์ ๋ฌผ์ ์ ์ ๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, ๋๋ถ๋ถ์ ์๋ฒ๋ ๋ฉ์๋์ ๊ด๊ณ์์ด ๋ชจ๋ ์๋ต์ด ์๋ฃ๋ ๋ ๋ก๊ทธ ํ์ผ์ ์ก์ธ์คํ๊ธฐ ์ํด ์์ฒญ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ฉฐ, ๋ก๊ทธ ์ ์ฅ์๊ฐ ๊ฐ๋ ์ฐจ์ ์๋ฒ๊ฐ ๋ค์ด๋ ์ ์๋๋ผ๋ ์์ ํ๋ค๊ณ ๊ฐ์ฃผ๋๋ค.
์ด ๋ช ์ธ์ ์ํด ์ ์๋ ์์ฒญ ๋ฉ์๋ ์ค GET, HEAD, OPTION ๋ฐ TRACE ๋ฉ์๋๋ ์์ ํ๋ค๊ณ ์ ์๋๋ค.
์์ ํ ๋ฉ์๋์ ์์ ํ์ง ์์ ๋ฉ์๋๋ฅผ ๊ตฌ๋ถํ๋ ๋ชฉ์ ์ ์๋ ๊ฒ์ ํ๋ก์ธ์ค(spider)์ ์บ์ ์ฑ๋ฅ ์ต์ ํ(pre-fetching)๊ฐ ์ํด๋ฅผ ์ผ์ผํฌ ์ผ๋ ค ์์ด ์๋ํ ์ ์๋๋ก ํ๊ธฐ ์ํจ์ด๋ค. ๋ํ ์ ์ฌ์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ ์ฝํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ ๋ ์์ ํ์ง ์์ ๋ฉ์๋์ ์๋ ์ฌ์ฉ์ ๋ํด ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ ์ ์ ํ ์ ์ฝ์กฐ๊ฑด์ ์ ์ฉํ ์ ์๋๋ก ํ๋ค.
๋ฆฌ์์ค์ ๋ชฉ์ ์ด ์์ ํ์ง ์์ ์์ ์ ์ํํ๋ ๊ฒ์ด๋ผ๋ฉด, ๋ฆฌ์์ค ์์ ์๋ ์์ ํ ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์คํ ๋ ํด๋น ์์ ์ ๋นํ์ฑํํ๊ฑฐ๋ ํ์ฉํ ์ง ์์์ผ ํ๋ค.(MUST)
์์ฒญ ๋ฉ์๋๋ ํด๋น ๋ฉ์๋์์ ๋ณต์์ ๋์ผํ ์์ฒญ์ ์๋ฒ์ ๋ํ ์๋๋ ํจ๊ณผ๊ฐ ๋จ์ผ ์์ฒญ์ ํจ๊ณผ์ ๋์ผํ ๊ฒฝ์ฐ, โ๋ฉฑ๋ฑ์ฑ(idempotent)โ์ผ๋ก ๊ฐ์ฃผ๋๋ค. ์ด ๋ช ์ธ์ ์ํด ์ ์๋ ์์ฒญ ๋ฉ์๋ ์ค PUT, DELETE ๋ฐ ์์ ์์ฒญ ๋ฉ์๋๋ ๋ฉฑ๋ฑํ๋ค.
์์ฒญ ๋ฉ์๋๋ โcacheableโ์ผ๋ก ์ ์ํ์ฌ ํฅํ ์ฌ์ฌ์ฉ์ ๋ํ ์๋ต์ ์ ์ฅํ ์ ์์์ ๋ํ๋ผ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ๋๋ ๊ถํ ์๋ ์๋ต ์ ์์กดํ์ง ์๋ ์์ ํ ๋ฉ์๋๋ ์บ์ ๊ฐ๋ฅ์ผ๋ก ์ ์๋๋ค. ์ด ๊ท๊ฒฉ์ GET, HEAD ๋ฐ POST๋ฅผ ์บ์ ๊ฐ๋ฅ์ผ๋ก ์ ์ํ์ง๋ง, ์๋์ ์ผ๋ก ๊ณผ๋ฐ์์ ์บ์ ๊ตฌํ์ GET์ HEAD๋ง ์ง์ํ๋ค.
GET ๋ฉ์๋๋ ๋์ ๋ฆฌ์์ค์ ๋ํด ํ์ฌ ์ ํ๋ ํํ์ ์ ์ก์ ์์ฒญํ๋ค. GET๋ ์ ๋ณด ๊ฒ์์ ์ฃผ์ ๋ฉ์ปค๋์ฆ์ด์ ๊ฑฐ์ ๋ชจ๋ ์ฑ๋ฅ ์ต์ ํ์ ์ด์ ์ด๋ค.
URI ๋งคํ ๋ฉ์ปค๋์ฆ์ด ํ์ผ ์์คํ ์ ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ์์๋ฒ๋ ์์ฒญ์ผ๋ก ํ์ผ์ ์ ๋ ฅ์ผ๋ก ์คํํ๊ณ ํ์ผ์ ์ง์ ์ ์กํ์ง ์๊ณ ์ถ๋ ฅ๋ฌผ ์ ํํ์ผ๋ก ์ ์กํ๋๋ก ๊ตฌ์ฑํ ์ ์๋ค.
ํด๋ผ์ด์ธํธ๋ ์์ฒญ์์ Range ํค๋ ํ๋([RFC7233]) ๋ฅผ ์ ์กํ์ฌ ์ ํ๋ ํํ์ ์ผ๋ถ๋ง ์ ์ก์ ์์ฒญํ๋ GET์ ์๋ฏธ๋ฅผ โrange requestโ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
HEAD ๋ฉ์๋๋ GET๊ณผ ๋์ผํ์ง๋ง, ์๋ฒ๊ฐ ์๋ต์์ ๋ฉ์์ง ๋ณธ๋ฌธ์ ์ ์กํ๋ฉด ์ ๋๋ค.(MUST NOT)
์๋ฒ๋ HEAD ์์ฒญ์ ์๋ตํ์ฌ GET ์์ฒญ๊ณผ ๋์ผํ ํค๋ ํ๋๋ฅผ ์ ์กํด์ผ ํ๋ค.(SHOULD)
์ด ๋ฉ์๋๋ ํํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์๊ณ ์ ํ๋ ํํ์ ๋ํ ๋ฉํ๋ฐ ์ดํฐ๋ฅผ ์ป๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ ํจ์ฑ, ์ ๊ทผ์ฑ ๋ฐ ์ต๊ทผ ์์ ์ ์ํ ํ์ดํผํ ์คํธ ๋งํฌ ํ ์คํธ์ ์ข ์ข ์ฌ์ฉ๋๋ค.
HEAD ์์ฒญ์ ๋ํ ์๋ต์ ์บ์๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ์บ์๋ Cache-Control ํค๋ ํ๋์ ๋ฌ๋ฆฌ ํ์๋์ง ์๋ ํ ํ์ HEAD ์์ฒญ์ ๋ง์กฑ์ํค๊ธฐ ์ํด ์บ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.(MAY) ([RFC7234] ์ Section 5.2). HEAD ์๋ต์ GET์ ๋ํ ์ด์ ์ ์บ์๋ ์๋ต์๋ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
POST ๋ฉ์๋๋ ๋์ ๋ฆฌ์์ค ์์ฒญ์ ๋๋ด๋ ํํ์ ๋ฆฌ์์ค ์์ฒด์ ํน์ ์๋ฏธ์ ๋ฐ๋ผ ์ฒ๋ฆฌํ๋๋ก ์์ฒญํ๋ค. ์๋ฅผ ๋ค์ด, POST๋ ๋ค์ ๊ธฐ๋ฅ(๋ค๋ฅธ ๊ธฐ๋ฅ ์ค)์ ์ฌ์ฉ๋๋ค.
HTML ์์์ ์ ๋ ฅ๋ ํ๋์ ๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ก์ธ์ค์ ์ ๊ณต;
๊ฒ์ํ, ๋ด์ค ๊ทธ๋ฃน, ๋ฉ์ผ ๋ชฉ๋ก, ๋ธ๋ก๊ทธ ๋๋ ์ ์ฌํ ๊ธฐ์ฌ ๊ทธ๋ฃน์ ๋ฉ์์ง ๊ฒ์;
์์๋ฒ์์ ์์ง ์๋ณ๋์ง ์์ ์ ๋ฆฌ์์ค ์์ฑ; ๋ฐ
๋ฆฌ์์ค์ ๊ธฐ์กด ํํ์ ๋ฐ์ดํฐ ์ถ๊ฐ
์์๋ฒ๋ POST ์์ฒญ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ ์ ํ ์ํ ์ฝ๋๋ฅผ ์ ํํ์ฌ ์๋ต ์๋ฏธ๋ก ์ ํ์ํ๋ฉฐ, ์ด ๊ท๊ฒฉ์ ์ํด ์ ์๋ ์ํ ์ฝ๋๋ ๊ฑฐ์ ๋ชจ๋ POST(206(Partial Content), 304(Not Modified), 416(Range Not Satisfiable)์ ๋ํ ์๋ต์ผ๋ก ์์ ๋ ์ ์๋ค.
POST ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ก์จ ํ๋ ์ด์์ ๋ฆฌ์์ค๊ฐ ์์๋ฒ์ ์์ฑ๋ ๊ฒฝ์ฐ, ์์๋ฒ๋ ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ๋ ๋์ ์์ฑ๋ ๊ธฐ๋ณธ ๋ฆฌ์์ค์ ์๋ณ์๋ฅผ ์ ๊ณตํ๋ Location ํค๋ ํ๋(Section 7.1.2)๋ฅผ ํฌํจํ๋ 201(Created)์๋ต๊ณผ ์์ฒญ์ ์ํ๋ฅผ ์ค๋ช ํ๋ ํํ์ ์ ์กํด์ผ ํ๋ค.(SHOULD)
POST ์์ฒญ์ ๋ํ ์๋ต์ ๋ช ์์ ์ธ ์ ์ ๋ ์ ๋ณด๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ์๋ง ์บ์ํ ์ ์๋ค ([RFC7234]์ Section 4.2.1 ์ฐธ์กฐ). ๊ทธ๋ฌ๋ POST ์บ์ฑ์ ๋๋ฆฌ ๊ตฌํ๋์ง ์๋๋ค.
PUT ๋ฉ์๋๋ ๋์ ๋ฆฌ์์ค์ ์ํ๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ฒญ ๋ฉ์์ง ํ์ด๋ก๋์ ๋๋ด๋ ํํ์ ์ํด ์ ์๋ ์ํ๋ก ๋์ฒดํ ๊ฒ์ ์์ฒญํ๋ค.
๋์ ๋ฆฌ์์ค๊ฐ ํ์ฌ ํํ์ ๊ฐ์ง๊ณ ์์ง ์๊ณ PUT์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑํ๋ค๋ฉด, ์์๋ฒ๋ 201 (Created) ์๋ต์ ์ ์กํ์ฌ ์ฌ์ฉ์ ์์ด์ ํธ์๊ฒ ์๋ ค์ผ ํ๋ค.(MUST)
๋์ ๋ฆฌ์์ค๊ฐ ํ์ฌ ํํ์ ๊ฐ์ง๊ณ ์๊ณ ๊ทธ ํํ์ด ๋๋ด๋ ํํ ์ํ์ ๋ฐ๋ผ์ ์ฑ๊ณต์ ์ผ๋ก ์์ ๋๋ ๊ฒฝ์ฐ, ์์๋ฒ๋ ์์ฒญ์ ์ฑ๊ณต์ ์ธ ์๋ฃ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด 200 (OK) ๋๋ 204 (No Content) ์๋ต์ ๋ณด๋ด์ผ ํ๋ค.(MUST)
์์๋ฒ๋ PUT ์์ฒญ์ผ๋ก ์ธ์๋์ง ์๋ ์์ ๋ ํค๋ ํ๋๋ฅผ ๋ฌด์ํด์ผ ํ๋ค.(SHOULD) (i.e., ๊ทธ๊ฒ๋ค์ ๋ฆฌ์์ค ์ํ์ ์ผ๋ถ๋ก ์ ์ฅํ์ง ๋ง๋ผ).
์ผ๋ฐ์ ์ผ๋ก ๋ฆฌ์์ค ์ธํฐํ์ด์ค ๋ค์ ์๋ ๋ชจ๋ ๊ตฌํ ์ธ๋ถ์ฌํญ์ ์๋ฒ์ ์ํด ์๋์ ์ผ๋ก ์จ๊ฒจ์ง๋ค.
์์๋ฒ๋ ์์ฒญ์ ํํ ๋ฐ์ดํฐ๊ฐ ๋ณธ๋ฌธ์ ์ ์ฉ๋ ๋ณํ ์์ด ์ ์ฅ๋๊ณ (i.e., ๋ฆฌ์์ค์ ์๋ก์ด ํ ํ ๋ฐ์ดํฐ๊ฐ PUT ์์ฒญ์์ ์์ ๋ ํํ ๋ฐ์ดํฐ์ ๋์ผํ ๊ฒฝ์ฐ) ๊ฒ์ฆ์ ํ๋ ๊ฐ์ด ์๋ก์ด ํํ ์ ๋ฐ์ํ์ง ์๋ ํ, PUT์ ๋ํ ์ฑ๊ณต์ ์ธ ์๋ต์ผ๋ก ETag ๋๋ Last-Modified ํ๋ ๊ฐ์ ๊ฒ ์ฆ์ ํค๋ ํ๋(Section 7.2)๋ฅผ ์ ์กํด์๋ ์๋๋ค.(MUST NOT)
์ด ์๊ตฌ์ฌํญ์ ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ PUT์ ๊ฒฐ๊ณผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํํ ๋ณธ๋ฌธ์ด ์ต์ ์ํ๋ก ์ ์ง๋๋ ์๊ธฐ๋ฅผ ์ ์ ์๋๋ก ํ์ฉ ํ๋ฉฐ, ๋ฐ๋ผ์ ์์๋ฒ์์ ๋ค์ ๊ฒ์ํ ํ์๊ฐ ์์ผ๋ฉฐ, ์๋ต์ ์์ ๋ ์ ๊ฒ์ฆ์๋ฅผ ์ฐ๋ฐ์ ์ธ ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํฅํ ์กฐ๊ฑด๋ถ ์์ฒญ์ ์ฌ์ฉ๋ ์ ์๋ค(Section 5.2).
POST ๋ฉ์๋์ PUT ๋ฉ์๋์ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๋ ๋๋ด๋ ํํ์ ๋ํ ๋ค๋ฅธ ์๋์ ์ํด ๊ฐ์กฐ๋๋ค. POST ์์ฒญ์ ๋์ ๋ฆฌ์์ค๋ ๋ฆฌ์์ค ์์ฒด์ ์๋ฏธ์ ๋ฐ๋ผ ๋๋ด๋ ํํ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ, PUT ์์ฒญ์ ๋๋ด๋ ํํ์ ๋์ ๋ฆฌ์์ค์ ์ํ๋ฅผ ๋์ฒดํ๋ ๊ฒ์ผ๋ก ์ ์๋๋ค. ๋ฐ๋ผ์ PUT์ ์๋๋ ๋ฉฑ๋ฑํ๋ฉฐ, ์ ํํ ํจ๊ณผ๋ ์์๋ฒ์ ์ํด์๋ง ์๋ ค์ ธ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ค๊ฐ์๊ฒ ๋ณด์ฌ์ง๋ค.
PUT ์์ฒญ์ ๋ํ ์ ์ ํ ํด์์ ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ ์ํ๋ ๋์ ๋ฆฌ์์ค๋ฅผ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํ๋ค.
ํน์ ๋์ ๋ฆฌ์์ค์ PUT๋ฅผ ํ์ฉํ๋ ์์๋ฒ๋, PUT์ด ์ ์ฒด ํํ์ผ๋ก์ ์๋ชป ํํ๋ ๋ถ๋ถ ์ฝํ ์ธ ์ผ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก Content-Range ํค๋ ํ๋([RFC7233] Section 4.2)๋ฅผ ํฌํจํ๋ PUT ์์ฒญ์ 400 (Bad Request) ์๋ต์ ๋ณด๋ด์ผ ํ๋ค.(MUST)
PUT ๋ฉ์๋์ ๋ํ ์๋ต์ ์บ์ํ ์ ์๋ค.
DELETE ๋ฉ์๋๋ ์์๋ฒ๊ฐ ๋์ ๋ฆฌ์์ค์ ๋์ ๋ฆฌ์์ค์ ํ์ฌ์ ์๊ด ๊ด๊ณ๋ฅผ ์ ๊ฑฐํ๋๋ก ์์ฒญํ๋ค. ์ฌ์ค์, ์ด ๋ฉ์๋๋ UNIX์ rm ๋ช ๋ น๊ณผ ์ ์ฌํ๋ค: ์ด๊ฒ์ ์ด์ ์ ์ฐ๊ด๋ ์ ๋ณด๊ฐ ์ญ์ ๋ ๊ฒ์ด๋ผ๋ ๊ธฐ๋๋ณด๋ค๋ ์์๋ฒ์ URI ๋งคํ์ ๋ํ ์ญ์ ์์ ์ ํํํ๋ค.
DELETE ๋ฉ์๋์ ๋ํ ์๋ต์ ์บ์ํ ์ ์๋ค.
CONNECT ๋ฉ์๋๋ ์์ ์์๊ฒ ์์ฒญ ๋์์ผ๋ก ์๋ณ๋ ๋์ ์์๋ฒ์ ํฐ๋์ ์ค์ ํ๋๋ก ์์ฒญํ๊ณ , ๊ทธ ํ, ํฐ๋์ด ๋ซํ ๋๊น์ง ํจํท์ ๋ธ๋ผ์ธ๋ ํฌ์๋ฉ์ผ๋ก ๋์์ ์ ํํ๋ค. ํฐ๋์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ ์ด์์ ํ๋ฝ์๋ฅผ ํตํด end-to-end ๊ฐ์ ์ปค๋ฅ์ ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์ดํ TLS(Transport Layer Security, [RFC5246])๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์์ ์ ์งํ ์ ์๋ค.
CONNECT๋ ํ๋ฝ์์ ๋ํ ์์ฒญ์์๋ง ์ฌ์ฉํ ์ ์๋ค.
CONNECT ์์ฒญ์ ์ ์กํ๋ ํด๋ผ์ด์ธํธ๋ ์์ฒญ ๋์์ ๊ถํ ์์์ ์ ์กํด์ผ ํ๋ค ([RFC7230]์ Section 5.3). ์ฆ, ์์ฒญ ๋์์ ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถ๋ ํฐ๋ ๋์์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ก๋ง ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค๋ฉด
CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com:80
ํฐ๋ ์ค๊ฐ์๋ ์ด๋ ํ์ชฝ์ด ์ปค๋ฅ์ ์ ๋ซ์์์ ๊ฐ์งํ ๋ ํฐ๋์ด ๋ซํ๋ค: ์ค๊ฐ์๋ ๋ซํ ์ชฝ์ ์ ์จ ๋ฏธ๊ฒฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ชฝ์ผ๋ก ๋ณด๋ด๊ณ , ์์ชฝ ์ปค๋ฅ์ ์ ๋ชจ๋ ๋ซ์ ๋ค์, ์ ๋ฌ๋์ง ์์ ๋๋จธ์ง ๋ฐ์ดํฐ๋ ๋ชจ๋ ํ๊ธฐํด์ผ ํ๋ค.(MUST)
ํ๋ก์ ์ธ์ฆ์ ์ฌ์ฉํ์ฌ ํฐ๋ ์์ฑ ๊ถํ์ ์ค์ ํ ์ ์๋ค. ์๋ฅผ ๋ค๋ฉด
CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com:80 Proxy-Authorization: basic aGVsbG86d29ybGQ=
์๋ฒ๋ 2xx (Successful) ์๋ต์ผ๋ก CONNECT์ Transfer-Encoding ๋๋ Content-Length ํค๋ ํ๋๋ฅผ ์ ์กํด์๋ ์ ๋๋ค.(MUST NOT)
ํด๋ผ์ด์ธํธ๋ CONNECT์ ๋ํ ์ฑ๊ณต์ ์ธ ์๋ต์ผ๋ก ์์ ๋ Content-Length ๋๋ Transfer-Encoding ํค๋ ํ๋๋ฅผ ๋ฌด์ํด์ผ ํ๋ค.(MUST)
CONNECT ๋ฉ์๋์ ๋ํ ์๋ต์ ์บ์ํ ์ ์๋ค.
OPTION ๋ฉ์๋๋ ๋์ ๋ฆฌ์์ค์ ์ฌ์ฉํ ์ ์๋ ํต์ ์ต์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ฆฌ์ง ์๋ฒ ๋๋ ์ค๊ฐ์์๊ฒ ์์ฒญํ๋ค. ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์ ์ ์์ํ์ง ์๊ณ ๋ฆฌ์์ค ๋๋ ์๋ฒ์ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ๋ ์ต์ ๋๋ ์๊ตฌ ์ฌํญ์ ๊ฒฐ์ ํ ์ ์๋ค.
๋ณํ("*")๋ฅผ ์์ฒญ ๋์์ผ๋ก ํ๋ OPTIONS ์์ฒญ([RFC7230]์ Section 5.3)์ ํน์ ๋ฆฌ์์ค๊ฐ ์๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ ์ ์ฉ๋๋ค. "*" ์์ฒญ์ "ping" ๋๋ "no-op" ์ ํ์ ๋ฉ์๋๋ง ์ ํจํ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๊ธฐ๋ฅ์ ํ ์คํธํ ์ ์๋๋ก ํ์ฉํ๋ ๊ฒ ์ธ์๋ ์๋ฌด ๊ฒ๋ ํ์ง ์๋๋ค. ์๋ฅผ ๋ค์ด, HTTP/1.1 ์ ํฉ์ฑ(๋๋ ๊ทธ๊ฒ๋ค์ ๊ฒฐ์ฌ)์ ๋ํ ํ๋ก์๋ฅผ ํ ์คํธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
์์ฒญ ๋์์ด ๋ณํ๊ฐ ์๋ ๊ฒฝ์ฐ OPTION ์์ฒญ์ ๋์ ๋ฆฌ์์ค์ ํต์ ํ ๋ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ ์ ์ฉ๋๋ค.
์๋ต์์ ํ์ด๋ก๋ ๋ณธ๋ฌธ์ ์ ์กํ์ง ์์ผ๋ ค๋ฉด ์๋ฒ๋ โ0โ์ ๊ฐ์ ๊ฐ์ง Content-Length ํ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.(MUST)
์์ฒญ์ด Max-Forwards ํ๋์ ์์ ๋์ง ์์ ๊ฒฝ์ฐ ํ๋ก์๋ ์์ฒญ์ ์ ๋ฌํ๋ ๋์ Max-Forwards ํค๋ ํ๋๋ฅผ ์์ฑํด์๋ ์ ๋๋ค.(MUST NOT)
ํ์ด๋ก๋ ๋ณธ๋ฌธ์ ํฌํจํ๋ OPTIONS ์์ฒญ์ ์์ฑํ๋ ํด๋ผ์ด์ธํธ๋ ๋ฏธ๋์ด ํ์ ํํ์ ์ค๋ช ํ๋ ์ ํจํ Content-Type ํค๋ ํ๋๋ฅผ ์ ์กํด์ผ ํ๋ค.(MUST)
OPTIONS ๋ฉ์๋์ ๋ํ ์๋ต์ ์บ์ํ ์ ์๋ค.
TRACE ๋ฉ์๋๋ ์์ฒญ ๋ฉ์์ง์ ์๊ฒฉ ์ ํ๋ฆฌ์ผ์ด์ -๋ ๋ฒจ ๋ฃจํ๋ฐฑ์ ์์ฒญํ๋ค.
์์ฒญ์ ์ต์ข ์์ ์๋ ์๋์ ์ค๋ช ๋ ์ผ๋ถ ํ๋๋ฅผ ์ ์ธํ๊ณ ์์ ๋ ๋ฉ์์ง๋ฅผ โmessage/httpโ์ ๋ด์ฉ ์ ํ์ผ ๋ก 200 (OK) ์๋ต์ ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋ค์ ๋ฐ์ํด์ผ ํ๋ค.(SHOULD)
ํด๋ผ์ด์ธํธ๋ TRACE ์์ฒญ์์ ์๋ต์ ์ํด ๊ณต๊ฐ๋ ์ ์๋ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ฌ ํค๋ ํ๋๋ฅผ ์์ฑํด์๋ ์ ๋๋ค.(MUST NOT)
ํด๋ผ์ด์ธํธ๋ TRACE ์์ฒญ์ผ๋ก ๋ฉ์์ง ๋ณธ๋ฌธ์ ๋ณด๋ด์๋ ์ ๋๋ค.(MUST NOT)
TRACE ๋ฉ์๋์ ๋ํ ์๋ต์ ์บ์ํ ์ ์๋ค.