HTTP
Last updated
Last updated
ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์
์์ฒญ๊ณผ ์๋ต์ ์๋์ ๊ฐ์ด ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, start line๊ณผ HTTP headers๋ฅผ ๋ฌถ์ด ์์ฒญ์ด๋ ์๋ต์ head๋ผ๊ณ ํ๋ฉฐ, Payload๋ body๋ผ๊ณ ํจ
start line: ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ด๋ฉฐ, ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์นํ๊ณ , ์๋ต์์๋ status line์ด๋ผ ๋ถ๋ฆ
HTTP headers: ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ
empty line: ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค
body: ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ด ๋ฐ์ดํฐ ๋๋ ๋ฌธ์ ํฌํจ, ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ฌ์ฉ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง
์ํํ ์์ ์ด๋ ๋ฐฉ์์ ์ค๋ช ํ๋ HTTP method
์์ฒญ ๋์ ๋๋ ํ๋กํ ์ฝ, ํฌํธ, ๋๋ฉ์ธ์ ์ ๋๊ฒฝ๋ก๋ ์์ฒญ ์ปจํ ์คํธ์ ์์ฑ๋จ
ํค๋์ด๋ฆ, ์ฝ๋ก , ๊ฐ์ ์ ๋ ฅ
General headers
Request headers
Representation headers
๋ชจ๋ ์์ฒญ์ ํ์ํ์ง ์์
Single-resource bodies(๋จ์ผ-๋ฆฌ์์ค ๋ณธ๋ฌธ)
Multiple-resource bodies(๋ค์ค-๋ฆฌ์์ค ๋ณธ๋ฌธ)
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด๋ ๋ฉ์์ง
ํ์ฌ ํ๋กํ ์ฝ์ ๋ฒ์ (HTTP/1.1)
์ํ ์ฝ๋: ์์ฒญ์ ๊ฒฐ๊ณผ (ex. 200, 302, 404 ๋ฑ)
์ํ ํ ์คํธ: ์ํ ์ฝ๋์ ๋ํ ์ค๋ช
์์ฒญ ํค๋์ ๋์ผํ ๊ตฌ์กฐ
ํญ์ ๊ฐ์ ์๋ฒ๊ฐ ์ ์ง๋์ด์ผ ํจ
์๋ฒ์ ์ฅ์ ๊ฐ ์๊ธด๋ค๋ฉด ์ ์ง๋๋ ์ํ์ ๋ณด๊ฐ ๋ ์๊ฐ ๋ฒ๋ฆฌ๋ฏ๋ก ์ฒ์๋ถํฐ ๋ค์ ์๋ฒ์ ์์ฒญํด์ผ ํจ
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ์ด๋ฏธ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ด์์ ๋ณด๋ด๊ธฐ์ ์๋ฌด ์๋ฒ๋ ํธ์ถํด๋ ๋จ
ํ ์๋ฒ์ ์ฅ์ ๊ฐ ์๊ธฐ๋๋ผ๋ ๋ค๋ฅธ ์๋ฒ์์ ์๋ต์ ์ ๋ฌํ๋ฉด ๋๋ฏ๋ก ํด๋ผ์ด์ธํธ๋ ๋ค์ ์์ฒญํ ํ์ ์์
์๋ต์๋ฒ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์๊ธฐ์ ๋ฌดํํ ์๋ฒ ์ฆ์ค ๊ฐ๋ฅ
๋ค๋ง, ๋ชจ๋ ๊ฒ์ ๋ฌด์ํ๋ก ์ค๊ณํ ์๋ ์๊ณ , ํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ (e.g. ๋ก๊ทธ์ธ์ด ํ์ ์๋ ๋จ์ ์๋น์ค ์๊ฐ ํ๋ฉด์ ๊ฒฝ์ฐ ๋ฌด์ํ๋ก ์ค๊ณ ๊ฐ๋ฅํ๋, ๋ก๊ทธ์ธ์ด ํ์ํ ์๋น์ค๋ผ๋ฉด ์ ์ ์ ์ํ๋ฅผ ์ ์งํด์ผ ํ๊ธฐ์ ๋ธ๋ผ์ฐ์ ์ฟ ํค, ์ธ์ , ํ ํฐ ๋ฑ์ผ๋ก ์ํ ์ ์ง)
์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ชจ๋ธ
ํด๋ผ์ด์ธํธ๋ค์ด ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ผ๋ ๊ณ์ ์ฐ๊ฒฐ์ ์ ์งํด์ผ ํ๋ฏ๋ก ์๋ฒ์ ์์์ด ์๋ชจ๋จ
์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ
์ค์ ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ๋๋ง ์ฐ๊ฒฐ์ ์ ์งํ๊ณ , ์๋ต์ ์ฃผ๊ณ ๋๋ฉด TCP/IP ์ฐ๊ฒฐ์ ๋๊ธฐ์ ์ต์ํ์ ์๋ฒ ์์ ์ฌ์ฉ
HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ
์ผ๋ฐ์ ์ผ๋ก ์ด ๋จ์ ์ดํ์ ๋น ๋ฅธ ์๋๋ก ์๋ต
1์๊ฐ๋์ ์ ์ฒ๋ช ์ด ์๋น์ค๋ฅผ ์ด์ฉํด๋ ์ค์ ์๋ฒ์์ ๋์์ ์ฒ๋ฆฌํ๋ ์์ฒญ์ ์ ์ญ๊ฐ ์ดํ๋ก ๋งค์ฐ ์ ์
๋ค๋ง, ํธ๋ํฝ์ด ๋ง์ ํฐ ์๋น์ค์์๋ ๋น์ฐ๊ฒฐ์ฑ์ด ํ๊ณ๋ฅผ ๋ณด์
์์๋ค์ ๊ฐ๊ฐ ๋ณด๋ผ ๋๋ง๋ค ์ฐ๊ฒฐ ๋๊ณ ๋ค์ ์ฐ๊ฒฐํ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ ๋นํจ์จ์
์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ HTTP2, 3์์ ๋ ๋ง์ด ์ต์ ํ๋จ
์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ ๋ค ๊ฐ๊ฐ์ ์์๋ค์ ์์ฒญํ๊ณ , ๋ชจ๋ ์์์ ๋ํ ์๋ต์ด ๋์์จ ํ์ ์ฐ๊ฒฐ ์ข ๋ฃํ๊ธฐ์ ์๊ฐ์ด ๊ฐ์
HTTP Secure์ ์ฝ์๋ก, HTTP ํ๋กํ ์ฝ์ ๋ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ
HTTP์๋ ๋ฌ๋ฆฌ ์์ฒญ๊ณผ ์๋ต์ผ๋ก ์ค๊ฐ๋ ๋ด์ฉ์ ์ํธํํ๊ธฐ ๋๋ฌธ
๋ฐ๋ผ์ ์ 3์๊ฐ HTTPS ์์ฒญ๊ณผ ์๋ต ๋ฐ์ดํฐ๋ฅผ ํ์ทจํ๋๋ผ๋ ๊ทธ ๋ด์ฉ์ ์์๋ณผ ์ ์์
ํ๋์ ํค๋ง ์ฌ์ฉํ๊ธฐ์, ์ํธํํ ๋ ์ฌ์ฉํ ํค๋ก ๋ณตํธํ ๊ฐ๋ฅ
์ฐ์ฐ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ผ๋, ํค๋ฅผ ํ์ทจ๋นํ์ ๊ฒฝ์ฐ ํค ๊ด๋ฆฌ์ ์ ๊ฒฝ์ ์จ์ผ ํจ
๋ ๊ฐ์ ํค(๊ณต๊ฐ ํค, ๋น๋ฐ ํค)๋ฅผ ์ฌ์ฉํ๊ธฐ์, ์ํธํํ ๋ ์ฌ์ฉํ ํค์ ๋ค๋ฅธ ํค๋ก๋ง ๋ณตํธํ ๊ฐ๋ฅ
๋ณดํต ์์ฒญ์ ๋ณด๋ด๋ ์ฌ์ฉ์๊ฐ ๊ณต๊ฐ ํค๋ฅผ, ์์ฒญ์ ๋ฐ๋ ์๋ฒ๊ฐ ๋น๋ฐ ํค๋ฅผ ๊ฐ์ง๊ธฐ์ ๋น๋ฐ ํค๋ ์๋ฒ๊ฐ ํดํน๋นํ์ง ์๋ ์ด์ ํ์ทจ๋์ง ์์
๋ณด์์ฑ์ด ์ข์ผ๋ ๋ ๋ณต์กํ ์ฐ์ฐ์ด ํ์ํ์ฌ ์๊ฐ์ด ๋ ์๋ชจ๋จ
HTTPS๋ HTTP ํต์ ์ ํ๋ ์์ผ ๋ถ๋ถ์์ SSL ํน์ TLS ๋ผ๋ ํ๋กํ ์ฝ๋ก ์๋ฒ ์ธ์ฆ๊ณผ ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์งํ
SSL์ด ํ์คํ๋๋ฉฐ ๋ฐ๋ ์ด๋ฆ์ด TLS์ด๋ฏ๋ก ์ฌ์ค์ ๊ฐ์ ํ๋กํ ์ฝ์
CA(Certificate Authority)๋ฅผ ํตํ ์ธ์ฆ์ ์ฌ์ฉ
๋์นญ ํค, ๊ณต๊ฐ ํค ์ํธํ ๋ฐฉ์์ ๋ชจ๋ ์ฌ์ฉ