์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
HyperText Transfer Protocol ๋๋ HyperTexT Protocol์ ์ฝ์์ด๋ค. ํด์ํ๋ฉด ๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ์ํ ์ฝ์์ผ๋ก ํด์๋๋ค.
2. ์ค๋ช [ํธ์ง]
ํ์ดํผํ
์คํธ๋ฅผ ๋น ๋ฅด๊ฒ ๊ตํํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ ์ผ์ข
์ผ๋ก ์ฆ, HTTP๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ์ฌ์ด์์ ์ด๋ป๊ฒ ๋ฉ์์ง๋ฅผ ๊ตํํ ์ง๋ฅผ ์ ํด๋์ ๊ท์น์ธ ๊ฒ์ด๋ค. 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ HTTP์ ๊ตฌ์กฐ๋ ์์ฒญ(Request)๊ณผ ์๋ต(Response)์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์์๋ฅผ ๋ค์๋ฉด 'ํด๋ผ์ด์ธํธ๊ฐ ์น ํ์ด์ง์์ ๋งํฌ๊ฐ ๊ฑธ๋ ค์๋ ํ
์คํธ๋ฅผ ํด๋ฆญ(์์ฒญ)ํ๋ฉด ๋งํฌ๋ฅผ ํ๊ณ ์๋ก์ด ํ์ด์ง๋ก ๋์ด๊ฐ๋ค(์๋ต)'. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์น ๋ธ๋ผ์ฐ์ ์์ ์ธํฐ๋ท ์ฃผ์ ๋งจ ์์ ๋ค์ด๊ฐ๋ http://๋ ๋ฐ๋ก ์ด ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์ ๋ณด๋ฅผ ๊ตํํ๊ฒ ๋ค๋ ํ์์ธ ๊ฒ์ด๋ค.
TLS๋ฅผ ํตํ ๋ณด์์ด ์ ์ฉ๋ ๋ฒ์ ์ HTTPS ์ฐธ๊ณ .
์ฐธ๊ณ ๋ก http:// ํ๊ธฐ๋ ์๋ ์์ด๋ ์น์ ์ฐฝ์์์ธ ํ ๋ฒ๋์ค๋ฆฌ์ ์ค์์์ ๋น๋กฏ๋์๋๋ฐ, ์ฌ์ค 2๊ฐ์ ๋น๊ธ(Slash)๋ ํ์๊ฐ ์๋ค! ์ฆ, ๊ตณ์ด ๋น๊ธ๊น์ง ์ ๋ ฅํ ํ์๋ ์๊ณ ์์ (:)๊น์ง๋ง ์จ๋ ์ ์์ ์ผ๋ก ์ ์๋๋ค๋ ์๊ธฐ.[1] ํ์ง๋ง ์ด ๋น๊ธ ๋ ๊ฐ๋ ๋๋ฆ๋๋ก ์ธ๋ชจ๊ฐ ์๋๋ฐ, ์ผ๋ฐ HTTP์ HTTPS ์์ชฝ์ ๋์ํ ๋ ์ฌ์ฉํ๋ค.//๊ฐ ์์ผ๋ฉด :๋ฅผ ๋์ ์ฐ์ง ์์๊น
TLS๋ฅผ ํตํ ๋ณด์์ด ์ ์ฉ๋ ๋ฒ์ ์ HTTPS ์ฐธ๊ณ .
์ฐธ๊ณ ๋ก http:// ํ๊ธฐ๋ ์๋ ์์ด๋ ์น์ ์ฐฝ์์์ธ ํ ๋ฒ๋์ค๋ฆฌ์ ์ค์์์ ๋น๋กฏ๋์๋๋ฐ, ์ฌ์ค 2๊ฐ์ ๋น๊ธ(Slash)๋ ํ์๊ฐ ์๋ค! ์ฆ, ๊ตณ์ด ๋น๊ธ๊น์ง ์ ๋ ฅํ ํ์๋ ์๊ณ ์์ (:)๊น์ง๋ง ์จ๋ ์ ์์ ์ผ๋ก ์ ์๋๋ค๋ ์๊ธฐ.[1] ํ์ง๋ง ์ด ๋น๊ธ ๋ ๊ฐ๋ ๋๋ฆ๋๋ก ์ธ๋ชจ๊ฐ ์๋๋ฐ, ์ผ๋ฐ HTTP์ HTTPS ์์ชฝ์ ๋์ํ ๋ ์ฌ์ฉํ๋ค.
3. ์ญ์ฌ[ํธ์ง]
1996๋
์ ์ฒซ ์์ฉํ ๋ฒ์ ์ธ HTTP/1.0๊ฐ ๋ฐํ๋์๊ณ , 1999๋
์ HTTP/1.1, ๊ทธ๋ฆฌ๊ณ 2015๋
HTTP/2๋ฅผ ๊ณต์์ผ๋ก ๋ฐํํ์๋ค.
ํ์ฌ HTTP/1.1์ ๋๋ถ๋ถ ์ฌ์ฉ ์ค์ด์ง๋ง ๊ตฌ๊ธ ๊ณ์ด์ ์ฌ์ดํธ๋ HTTP/2์ HTTP/1.1์ ๋์์ ์ง์ํ๊ณ ์๊ณ , ๋ค๋ฅธ ๊ตญ๋ด์ธ ์ฌ์ดํธ๋ค๋ ์ ์ฐจ์ ์ผ๋ก HTTP/2๋ก ๋ฐ๊พธ๋ ์ถ์ธ๋ค. HTTP/2๋ HTTPS ์ฐ๊ฒฐ์์๋ง ์๋ํ๋ฉฐ, HTTP ์ฐ๊ฒฐ์ผ ๊ฒฝ์ฐ์๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ์์ HTTP/2๋ฅผ ์ง์ํ๋๋ผ๋ HTTP/1.1๋ก ์ฐ๊ฒฐ๋๋ค.
HTTP/2๋ ๊ตฌ๊ธ์ด ๋ฐํํ SPDY๋ผ๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, HTTP/3์๋ ๊ตฌ๊ธ์ด ๋ฐํํ QUIC์ ๊ธฐ์ ์ด ์ ์ฉ๋๋ ๊ฒ์ผ๋ก ๋ฐฉํฅ์ด ์ ํด์ง ๋ชจ์์ด๋ค. HTTP/2๊น์ง๋ TCP ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, HTTP over QUIC(HTTP/3)์ UDP ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ์ค๋ช
ํ์ฌ HTTP/1.1์ ๋๋ถ๋ถ ์ฌ์ฉ ์ค์ด์ง๋ง ๊ตฌ๊ธ ๊ณ์ด์ ์ฌ์ดํธ๋ HTTP/2์ HTTP/1.1์ ๋์์ ์ง์ํ๊ณ ์๊ณ , ๋ค๋ฅธ ๊ตญ๋ด์ธ ์ฌ์ดํธ๋ค๋ ์ ์ฐจ์ ์ผ๋ก HTTP/2๋ก ๋ฐ๊พธ๋ ์ถ์ธ๋ค. HTTP/2๋ HTTPS ์ฐ๊ฒฐ์์๋ง ์๋ํ๋ฉฐ, HTTP ์ฐ๊ฒฐ์ผ ๊ฒฝ์ฐ์๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ์์ HTTP/2๋ฅผ ์ง์ํ๋๋ผ๋ HTTP/1.1๋ก ์ฐ๊ฒฐ๋๋ค.
HTTP/2๋ ๊ตฌ๊ธ์ด ๋ฐํํ SPDY๋ผ๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, HTTP/3์๋ ๊ตฌ๊ธ์ด ๋ฐํํ QUIC์ ๊ธฐ์ ์ด ์ ์ฉ๋๋ ๊ฒ์ผ๋ก ๋ฐฉํฅ์ด ์ ํด์ง ๋ชจ์์ด๋ค. HTTP/2๊น์ง๋ TCP ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ฐ, HTTP over QUIC(HTTP/3)์ UDP ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. ์ค๋ช
4. ๊ตฌ์กฐ[ํธ์ง]
HTTP๋ ์์ฒญ(Request)์ ์๋ต(Response)๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๋ฉด ์๋ฒ๊ฐ ์๋ต์ ํ๋ ๊ตฌ์กฐ๋ก ๋์ด ์๋ค. HTTP๋ FTP๋ ํ
๋ท๊ณผ๋ ๋ค๋ฅด๊ฒ ๋น์ฐ๊ฒฐ์์ด๋ค. FTP๋ Telnet์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ์์ฒญํด๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๋์ง ์์ง๋ง, HTTP๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด ์๋ต ์ฝ๋์ ๋ด์ฉ์ ์ ์กํ๊ณ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค. ์ฐ๋ฆฌ๊ฐ ๋๋ฌด์ํค์ ์ ์์ ํ๋ค๊ณ ๊ฐ์ ํ์. ์ ์ํ๋ฉด ํด๋ผ์ด์ธํธ๋ GET๋ช
๋ น์ ๋๋ฌด์ํค ์๋ฒ์ ์ ์กํ๋ค. GET์์ฒญ์ ๋ฐ์ ๋๋ฌด์ํค๋ ์๋ต ์ฝ๋์ ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ๊ทธ๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฟ๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
4.1. ์์ฒญ[ํธ์ง]
GET /index.htm HTTP/1.1 - ํค๋
Host: namu.com - ํธ์คํธ
- ๊ณต๋ฐฑ -๋ค์ ์์ฒญ ๋ฉ์์ง๋ namu.com์ index.htm์ ๋ณด์ฌ๋ฌ๋ผ๋ ์์ฒญ์ด๋ค. ์๋ฒ๋ ์ด๊ฒ์ ๋ฐ๊ณ ์๋ตํ๋ค.
4.2. ์๋ต[ํธ์ง]
HTTP/1.1 200 OK
<ํค๋>
<HTML>
<HEAD>
<TITLE>Hello!</TITLE>
</HEAD>
<BODY>
<p>World!</p>
</BODY>
</HTML>
HTTP/1.1์ HTTP์ ๋ฒ์ ์ด๋ฉฐ, 200 OK๋ ์๋ฃ ์ ์ก์ด ์ฑ๊ณตํ๋ค๋ ์๋ฏธ์ด๋ค. ํค๋ ๋ถ๋ถ์ ์๋ฒ ์ ๋ณด์ ์์ฒญ ๋ฐ์ ์๊ฐ ๋ฑ์ด ์ ์ก๋๊ณ ๊ทธ ๋ฐ์ ์๋ต ๋ณธ๋ฌธ์ด ์ ์ก๋๋ค. ์ผ๋ฐ์ ์ธ ์น ๋ฌธ์๋ฅผ ์์ฒญํ์ ๊ฒฝ์ฐ์๋ <HTML>๋ก ์์ํ๋ ์น ๋ฌธ์๊ฐ ์ ์ก๋๋ค.
5. ๋ฉ์์ง ์ข ๋ฅ[ํธ์ง]
5.1. ์์ฒญ[ํธ์ง]
HTTP์์ ์ง์ํ๋ ์์ฒญ ๋ฉ์์ง๋ ๋ค์๊ณผ ๊ฐ๋ค.
- GET: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ URL์ ํด๋นํ๋ ์๋ฃ์ ์ ์ก์ ์์ฒญํ๋ค.
- HEAD: GET ์์ฒญ์ผ๋ก ๋ฐํ๋ ๋ฐ์ดํฐ ์ค ํค๋ ๋ถ๋ถ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ง ์์ฒญํ๋ค.
- POST: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ์ฒ๋ฆฌํ ์ ์๋ ์๋ฃ๋ฅผ ๋ณด๋ธ๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์ํ์ ๊ธ์ ์ธ ๋ ํด๋ผ์ด์ธํธ์ ๋ฌธ์๊ฐ ์๋ฒ๋ก ์ ์ก๋์ด์ผ ํ๋ค.
- PATCH: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ง์ ํ URL์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ์์ ํ ๊ฒ์ ์์ฒญํ๋ค.
- PUT: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ง์ ํ URL์ ์ง์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฒ์ ์์ฒญํ๋ค.
- DELETE: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ง์ ํ URL์ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ ๊ฒ์ ์์ฒญํ๋ค.
- TRACE: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ก์ ํ ์์ฒญ์ ๋ด์ฉ์ ๋ฐํํด ์ค ๊ฒ์ ์์ฒญํ๋ค.
- CONNECT: ํด๋ผ์ด์ธํธ๊ฐ ํน์ ์ข ๋ฅ์ ํ๋ก์ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์์ฒญํ๋ค.
- OPTIONS: ํด๋น URL์์ ์ง์ํ๋ ์์ฒญ ๋ฉ์ธ์ง์ ๋ชฉ๋ก์ ์์ฒญํ๋ค.
์ด ์ค GET ๊ณผ HEAD ์์ฒญ์ ์์น์ ์ผ๋ก ์ด๋ฅผ ํธ์ถํ๋ค๊ณ ํด์ ์๋ฒ ์ธก์ ๋ฐ์ดํฐ์ ๋ณํ๊ฐ ์์ด์๋ ์ ๋๋ค. ์ด๋ฅผ Safe Method ๋ผ๊ณ ๋ถ๋ฅํ๋ค. ๋ํ, GET, HEAD, PUT, DELETE ๋ ๋์ผํ ์์ฒญ์ด ํ๋ฒ ์ ์ก๋์์ ๋์ ์ฌ๋ฌ ๋ฒ ์ฐ์ํ์ฌ ์ ์ก๋์์ ๋์ ์๋ฒ ์ธก์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋์ผํด์ผ ํ๋ค. ์ด๋ฅผ Idempotent Method ๋ผ๊ณ ๋ถ๋ฅํ๋ค.
5.2. ์๋ต ์ฝ๋[ํธ์ง]
6. HTTPS์์ ์ฐจ์ด์ [ํธ์ง]
์ฌ์ดํธ ์ฃผ์๊ฐ HTTPS๋ก ์์ํ๋ฉด ๋น๋ฐ๋ฒํธ๋ ์ ์ฉ์นด๋ ๋ฒํธ ๋ฑ์ ์ ๋ณด๋ ๋น๊ณต๊ฐ ์ํ๋ก ํด๋น ์ฌ์ดํธ์ ์ ์๋๋ค.
๋๋ฌด์ํค๋ HTTPS๊ฐ ์ฐ๊ฒฐ๋์ด์๋ค.ํ์ง๋ง ๋๋ฌด์ํค๋ ์ ์ฉ์นด๋๋ ์ ํ๋ฒํธ ์
๋ ฅ์ด ์์ผ๋ HTTPS๋ ํ์์๋ค.
HTTPS๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์ ๊ธ ์์ด์ฝ์ด ๋ฌ๋ค.
HTTPS๊ฐ ๋ฏธ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์ํ ํ์๊ฐ ๋ฌ๋ค.[2]
๋๋ฌด์ํค๋ HTTPS๊ฐ ์ฐ๊ฒฐ๋์ด์๋ค.
HTTPS๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์ ๊ธ ์์ด์ฝ์ด ๋ฌ๋ค.
HTTPS๊ฐ ๋ฏธ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์ํ ํ์๊ฐ ๋ฌ๋ค.[2]
6.1. HTTP ์ ๋จ์ [ํธ์ง]
- HTTPS๊ฐ ์ฌ์ฉ๋์ง ์์์ ๊ฒฝ์ฐ ๋น๋ฐ๋ฒํธ, ์ ์ฉ์นด๋ ๋ฒํธ ๋ฑ์ ์ ๋ณด๊ฐ ๋์ฉ ๋ ์ ์๋ค. ์ธํฐ๋ท ๊ฒฐ์ ๋ฑ ๊ฐ์ธ์ ๋ณด ์ ๋ ฅ์ด ํ์ํ ์ฌ์ดํธ์์๋ HTTPS๋ฏธ์ฌ์ฉ์ ๊ฑฐ์ ๋ณผ ์๊ฐ ์๋ค.
- ์์ด๊ต์ก ์ฌ์ดํธ์์๋์์๋ ๋ฃ๊ธฐ(listening), ์ฐ๊ธฐ(writing)๋ HTTPS๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋์ง๋ง, ๋งํ๊ธฐ(speaking)์์๋ HTTPS๊ฐ ์ฐ๊ฒฐ๋์ด์์ด์ผ ํ๋ค. ์ด๋ ๋งํ๊ธฐ์์ HTTPS๊ฐ ์ฐ๊ฒฐ๋์ด์์ด์ผ Speakingํ ๋ ์ฐ๋ ๋ง์ดํฌ๊ฐ ์ ๋๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ด๋ค.