๐ก
1990๋
์น์ด ์ด ์ธ์์ ์ฒ์ ๋ฑ์ฅํ์ ๋, ์น์ ๊ตฌ์ฑํ๋ ์์๋ ํฌ๊ฒ ๋ค ๊ฐ์ง์๋ค. ์น ํ์ด์ง๋ฅผ ๋ง๋๋ ์ปดํจํฐ ์ธ์ด์ธ HTML, ์ํ๋ ์น ํ์ด์ง์ ๋ฐฉ๋ฌธํ ์ ์๋๋ก ๋์์ฃผ๋ ์ฃผ์ ์ฒด๊ณ์ธ URL, ๊ทธ๋ฆฌ๊ณ ์น ํ์ด์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ํํธ์จ์ด์ธ Web browser/server, ๊ทธ๋ฆฌ๊ณ 'ํต์ ๊ท์น'์ด์ ์ค๋์ ์ฃผ์ ์ธ HTTP์ด๋ค. HTTP๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์๊ฒผ๋์ง๋ถํฐ, ๋ฐ์ ๊ณผ์ , ์๋ ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ HTTPS์ ๊ฐ๋
๊ณผ ์ฌ์ฉ ์ด์ ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ํบ์๋ณด๋๋ก ํ์!
ํ์ดํผํ ์คํธ ์ ์ก ํ๋กํ ์ฝ(HyperText Transfer Protocol)์ ์ฝ์๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ์ ๋งํ๋ค.
(+)
์๋ฒ-์๋ฒ, ํด๋ผ์ด์ธํธ-ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ (์์ฒญ๊ณผ ์๋ต)๋ ์ด๋ฃจ์ด์ง๋ค. ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์๋ง ํต์ ์ด ์ด๋ฃจ์ด์ง๋ค๊ณ ๋จ์ ์ง์ง ์๋๋ก ํ์.
ํ์ดํผํ ์คํธ์ ํ๋กํ ์ฝ?
Hypertext : ์ฐธ์กฐ(ํ์ดํผ๋งํฌ)๋ฅผ ํตํด ๋ ์๊ฐ ํ ๋ฌธ์์์ ๋ค๋ฅธ ๋ฌธ์๋ก ์ฆ์ ์ ๊ทผํ ์ ์๋ ํ ์คํธ์ด๋ค.
Protocol : ์ปดํจํฐ์์ ๋ฐ์ดํฐ์ ๊ตํ ๋ฐฉ์์ ์ ์ํ๋ ๊ท์น ์ฒด๊ณ์ด๋ค. ๐ ์ฝ๊ฒ ๋งํด, ์ฌ๋๋ค์ด ๋ง, ๊ธ ๋ฑ์ผ๋ก ์๋ก ์ํตํ๋ฏ์ด ํ๋ก๊ทธ๋จ๋ ์ ํด๋ ๊ท๊ฒฉ์ ๊ฐ์ง๊ณ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ, ์ด๋ ์ฌ์ฉํ๋ ํต์ ๊ท์ฝ์ด ๋ฐ๋ก ํ๋กํ ์ฝ์ด๋ค :>
HTTP๋ฅผ ํตํ ์ผ๋ฐ์ ์ธ ํ๋ฆ์๋ ํด๋ผ์ด์ธํธ ์์คํ ์์ ์๋ฒ์ ์์ฒญํ ๋ค์ ์๋ฒ์์ ์๋ต ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ์์ ์ด ํฌํจ๋๋ค.
HTTP ๋ฉ์์ง๋ HTTP ์๋ฒ์ HTTP ํด๋ผ์ด์ธํธ์ ์ํด ํด์๋๋ค.
TCP / IP๋ฅผ ์ด์ฉํ๋ ์์ฉ ํ๋กํ ์ฝ์ด๋ค.
HTTP๋ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์งํ์ง ์๋ ๋น์ฐ๊ฒฐ์ฑ(Connectionless) ํ๋กํ ์ฝ์ด๋ฉฐ, ์ํ์ ๋ณด๋ฅผ ์ ์งํ์ง ์๋ Stateless ํ๋กํ ์ฝ์ด๋ค. ์๋ฒ๊ฐ ์๋ต ํ ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ ค, ์์ฒญ์ด ๋ค์ด์ค๋ ํด๋ผ์ด์ธํธ์ ์ด์ ์ํฉ์ ์ ์ ์๋ค.
(์ผํ๋ชฐ์์ ๋ฌผ๊ฑด์ ๊ณ ๋ฅด๊ณ ๊ฒฐ์ ๋ฅผ ํ๋ ค๊ณ ํ ๋, ๋ฌด์จ ๋ฌผ๊ฑด์ ๊ณ ๋ฅธ์ง ๋ชฐ๋ผ ๊ฒฐ์ ๋ฅผ ํ ์ ์์ ์ ์๋ค.)
โก๏ธ ์ด๋ฐ Stateless ํน์ง ๋๋ฌธ์ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฟ ํค, ์ธ์
, ํ ํฐ๊ณผ ๊ฐ์ ๊ธฐ์ ์ด ๋ฑ์ฅํ๋ค!๐ช
HTTP๋ ์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ํ๋กํ ์ฝ์ด๊ธฐ ๋๋ฌธ์ ์์ฒญ/์๋ต ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
: ๊ฐ์ฅ ์ด๊ธฐ์ WWW(World Wide Web)์ด ๋ง๋ค์ด์ง๋ฉด์ ํจ๊ป ๋ฑ์ฅํ HTTP์ด๋ค. ์ด๋ ํต์ ์ ํ์ํ ์ต์ํ์ ๊ธฐ๋ฅ๋ง ๊ฐ์ถ๊ณ ์์๋ค. GET /mypage.html
๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค๋ ๋ณธ๋ฌธ์ ๋ณด๋ด๋ฉด
<HTML>
A very simple HTML page
</HTML>
์ด๋ ๊ฒ ๊ฒฐ๊ณผ ์์ฒด๋ฅผ ๋ณธ๋ฌธ์ ๋ด์ ์๋ตํ๋ค. ์๋ฌ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ์๋ต ๋ฉ์์ง์ ๋ณธ๋ฌธ์ ์๋ฌ๋ฅผ ์ ์ด ๋ณด๋๋ค.
: ์ฐ๋ฆฌ๊ฐ ์ตํ ์๊ณ ์๋, ๊ฐ ์ก๊ณ ๋ฌธ์ํ๋ ํํ์ HTTP๊ฐ ๋ํ๋ฌ๋ค. ์ด๋ ํ์ฌ HTTP ํ๋กํ ์ฝ์ ๊ฐ์ฅ ๊ธฐ์ด๊ฐ ๋๋ค. ์๋๋ ์์ฒญ์ ์์์ด๋ค.
GET /mypage.html HTTP/1.0
User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)
์ด์ ๋ํ ์๋ต์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํํ์ ๋ฉ์์ง๋ฅผ ๋ฐ์ ์ ์๋ค.
200 OK
Date: Tue, 15 Nov 1992 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
<HTML>
A page with an image
<IMG SRC=" /myimage.gif">
</HTML>
์ด๋ ๊ฒ ๋ณธ๋ฌธ ์ด์ธ์ ํ
์คํธ๊ฐ ์ถ๊ฐ๋์๋๋ฐ, ์ด๊ฒ์ด HTTP/1.0๋ถํฐ ์๋กญ๊ฒ ๋ฑ์ฅํ ํค๋(Header)์ด๋ค. ํค๋๋ ํด๋น ๋ฉ์์ง์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์ญํ ๋ก, ์ด๋ง ์ฝ์ด๋ ์ด ๋ฉ์์ง์ ๋๋ต์ ์๋ฏธ๋ฅผ ํ์
ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ๋ฉ์์ง๊ฐ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์๋์ง, ์ง๊ธ ๋ฐ๋ ๋ฌธ์์ ํ์
์ ์ด๋ค์ง ๋ฑ์ ํ์ธํ๊ณ ์ด์ ๋์ํ ์ ์๊ฒ ๋์๋ค.
โ๊ทธ๋ฌ๋ ๋๋๊ฒ๋, 1.0์ ๋ถ์ฐ๋ ๊ธฐ๋ฅ๋ค์ ํ๋๋ก ์ ๋ฆฌํ์ ๋ฟ ๊ณต์์ ์ธ ํ์ค์ ์๋์๋ค.
: 1.0๊ณผ ํฐ ๋งฅ๋ฝ์ ๋์ผํ๋, ์ผ๋ถ ๋ชจํธํ๋ ๊ธฐ๋ฅ๋ค์ด ๊ฐ์ ๋๋ฉฐ ์ง์ ํ ํ์ค์ผ๋ก ์๋ฆฌ๋งค๊นํ ๋ฒ์ ์ด๋ค.
๋น์ 1.0 ๋ฒ์ ์์๋ ๋ชจ๋ ์์ฒญ๋ง๋ค ์๋ก์ด ์ฐ๊ฒฐ์ ๋งบ์ด์ผ ํ๋ค. ์ฐ๊ฒฐ์ ํ๊ณ , ์์ฒญ๊ณผ ์๋ต์ ํ ๋ฒ์ฉ ์ฃผ๊ณ ๋ฐ๊ณ ๋๋ฉด ๊ทธ ์ฐ๊ฒฐ์ ๋๊ณ ๋ค์ ์ ์ฐ๊ฒฐ์ ํ๋ ์์ด์๋ค. ๋ฌธ์ ๋, ๋์ผํ ์ปดํจํฐ ์ฌ์ด์์ ์ฌ๋ฌ ๊ฐ์ ์ฝํ ์ธ ๋ฅผ ์์ฒญํ ๋์๋ ๋งค๋ฒ ์ ์ฐ๊ฒฐ์ ๋งบ์ด์ผ ํ๋ค๋ ๊ฒ! ํนํ ํ ๋ฒ ์ฐ๊ฒฐ์ ํ ๋๋ง๋ค TCP์์ 3-way handshake๊ฐ ์ด๋ฃจ์ด์ง๋ ์๋๊ฐ ๋์ ๋๊ฒ ๋๋ ค์ก๋ค.
TCP : (IP๊ฐ ์ ํ ์ฃผ์๋ก ๋ณด๋ด๋ ๋ฐ์ ์ง์คํ ๊ท์ฝ์ด๋ผ๋ฉด) ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ฒ ๋ค์ด์๋์ง์ ์ง์คํ๋ ๊ท์ฝ, ์ฆ ์์ ์ ์ธ ๋ฐ์ดํฐ ์ ์ก[์ ๋ขฐ์ ์ธ ์ ์ก]์ ๋ด๋นํ๋ ํ๋กํ ์ฝ์ด Trandsmission Control Protocol์ด๋ค.
3-way handshake : ์ง์ญํ๋ฉด '์ธ ๋ฐฉ๋ฒ์ ์ ์'์ธ๋ฐ, ์ธ ๋ฒ์ ํํ์ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ชฝ๊ณผ ๋ฐ๋ ์ชฝ ๋ ๋ค ์ค๋น๊ฐ ๋์๋์ง ํ์ธํ๋ ๋ฐฉ์์ด๋ค. [์ฐ๊ฒฐํด๋ ๋ ๊น์? - ๋ค! ์ ๋ ์ฐ๊ฒฐํด๋ ๋ ๊น์? - ๋ค ์ข์์!]
์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ํ HTTP/1.1์์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํด ํจ๊ณผ์ ์ผ๋ก ํต์ ์๋๋ฅผ ๊ฐ์ ํ๊ฒ ๋๋ค.
: Google์์ ๋ฐํํ ์ ํ๋กํ ์ฝ์ด๋ค. ์ด๋ฆ์์ ์ ์ถํ ์ ์๋ฏ, HTTP/1.1์ ์ฑ๋ฅ ์ ํ์ ํด๊ฒฐํ๊ณ ์น ํ์ด์ง์ ๋ก๋ ์ง์ฐ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค. ์ด SPDY์ ๋ฐํ๋ฅผ ํฅ๋ฏธ๋กญ๊ฒ ๋ณธ HTTP ๊ด๊ณ์(HTTP Working Group)๋ SPDY๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ HTTP ๋ฒ์ ์ ๋ง๋ค์ด๋ณด์ง ์๊ฒ ๋๋ ์ ์์ ํ๋ค. ์ด๋ ์ฑ์ฌ๋์๊ณ , ๋ค์์ HTTP/2๊ฐ ํ์ํ๋ค.
: SPDY๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTTP/1.1์์ '์ฑ๋ฅ, ์๋'๋ฅผ ๊ฐ์ ํ HTTP์ด๋ค. ์ด ๋ฒ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์๋ค.
์ด๋ฅผ ๊ฐ๋ฅ์ผ ํ HTTP/2์ ํต์ฌ์ด ๋ฐ๋ก ๋ฐ์ด๋๋ฆฌ ํ๋ ์ด๋ฐ(binary framing)์ด๋ค. (์ฐ๋ฆฌ๊ฐ ์ฝ์ ์ ์๋ ํ ์คํธ ํ์์ด์๋ HTTP ๋ฉ์์ง๋ฅผ ๋ ์์ ๋จ์๋ก ์ชผ๊ฐ ๋ฐ์ด๋๋ฆฌ ํํ๋ก ์บก์ํํ ๊ฒ. ๊ฐ์ ๋ฉ์์ง๋ผ๋ ๋ ์๊ฒ ์ชผ๊ฐ์ ํจ์จ์ ์ผ๋ก ์ ๋ฌํ ์ ์๊ฒ ํ๋ค!)
: HTTP/2์ ๊ณ ์ง์ ์ธ ๋ฌธ์ (์ค๋๋ ํ๋กํ ์ฝ์ธ TCP ์์์ ๋์ํ๊ณ ์์์)๋ฅผ ํด๊ฒฐํ ํ๋กํ ์ฝ : QUIC์ ์ฌ์ฉํ ์ฐจ์ธ๋ ํ๋กํ ์ฝ์ด๋ค. TCP์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๋๋ก ๋ง๋ ํ๋กํ ์ฝ์ธ QUIC์ TCP๊ฐ ์๋ UDP ์์์ ๋์ํ๋ค.
UDP๋?
UDP๋ ๋น์ฐ๊ฒฐํ ์๋น์ค๋ก์, ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ด ์กด์ฌํ์ง ์๋๋ค. ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ํจํท์ ์์๋ฅผ ๋ถ์ฌํด ์ฌ์กฐ๋ฆฝํ๋ค. TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ฉฐ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ ๋ค๋ ์ฅ์ ์ด ์์ง๋ง ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ์ ์ ์ก์ ๋ณด์ฅํ์ง๋ ๋ชปํ๋ค. ๋ฐ๋ผ์ ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ฐ์์ฑ์ด ์ค์ํ ์๋น์ค(Ex. ์ค์๊ฐ ์๋น์ค(streaming))์ ์์ฃผ ์ฌ์ฉ๋๋ค.
๐ ๋ค์ ๋งํด, ๋ฐ์ดํฐ๊ฐ ์๋ชป ๊ฐ๋์ง ํ์ธํ๋ ์์ ์ ์๋ตํ๊ณ ๊ณ์ํด์ ๋ณด๋ธ๋ค. ์ด๋ก์จ ์ฐ์์ฑ์ ์ด์ ์ ๋ง์ถ ๊ฒ์ด UDP์ด๋ค. ์์ ์คํธ๋ฆฌ๋ฐ์ฒ๋ผ ์ ๋ขฐ์ฑ๋ณด๋ค ์ฐ์์ฑ์ด ์ค์ํ ๋ถ๋ถ์์ (TCP ์์์ ๋์ํ๋ HTTP/2๋ณด๋ค๋) UDP ์์์ ๋์ํ๋ HTTP/3๊ฐ ์ฌ์ฉ๋๋ค.
HTTP๋ ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ฅธ๋ค.
: ํด๋ผ์ด์ธํธ ์ฆ, ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ ์ด๋ ํ ์๋น์ค url์ ํตํ๊ฑฐ๋ ๋ค๋ฅธ ๊ฒ์ ํตํด์ ์์ฒญ(request)์ ํ๋ฉด ์๋ฒ์์๋ ํด๋น ์์ฒญ์ฌํญ์ ๋ง๋ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์์ ์ฌ์ฉ์์๊ฒ ์๋ต(response)ํ๋ ํํ๋ก ๋์ํ๋ค.
๐ก (+) ์น ๋ธ๋ผ์ฐ์ ์ ์น ํ์ด์ง๊ฐ ํ์๋๋ ๊ณผ์
1. ์ฌ์ฉ์๊ฐwww.naver.com
์ ๊ฐ์ URL์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํ๋ค.
2. DNS ์กฐํ๋ฅผ ํตํ์ฌwww.naver.com
์ ip๋ก ๋ณํํ๋ค.
3. TCP์ 3way-handshaking ์ฐ๊ฒฐ ๋ฐฉ์์ผ๋ก ์น ์๋ฒ์ ์ฐ๊ฒฐํ๊ณ http๋80
, https๋443
ํฌํธ๋ฅผ ์ด์ฉํ๋ค.
4. http ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ์น ์๋ฒ์ ์์ฒญ(Request)ํ๋ค.
5. ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ฐ๋ผ WAS์ ์ํธ ์ฐ๋ํ๋ฉฐ ํ์ํ ๊ฒฝ์ฐ DB์ ์ ๋ณด๋ฅผ ์ด์ฉํ๋ค.
6. ์น ์๋ฒ๋ ์ต์ข ์ ๋ณด๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ์๋ต(Response)ํ๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ ์ ์ก ๋ฐ์ ๋ด์ฉ์ ํ์ํ๋ค.
7. TCP์ 4way-handshaking ์ฐ๊ฒฐ ์ข ๋ฃ ๋ฐฉ์์ผ๋ก ์น์๋ฒ์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ค.
์ฉ์ด ์ค๋ชDNS ์กฐํ : DNS(Domain Name System : ์ธํฐ๋ท์์ ๋๋ฉ์ธ ์ด๋ฆ๊ณผ IP ์ฃผ์ ๊ฐ์ ๋์์ ์ ๊ณตํ๋ ์์คํ )๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋๋ฉ์ธ์ IP ์ฃผ์๋ ๊ธฐํ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ํ๋ก์ธ์ค. ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ ๋คํธ์ํฌ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋๋ฉ์ธ ์ด๋ฆ(Ex. www.example.com)์ ์ ๋ ฅํ๋ฉด, ํด๋น ๋๋ฉ์ธ ์ด๋ฆ์ ๋ํ IP ์ฃผ์๋ฅผ ์ฐพ์์ ์ปดํจํฐ๊ฐ ์๋ฒ์ ํต์ ํ ์ ์๋๋ก ํ๋ค.
WAS : Web Application Server์ ์ฝ์๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํ ์๋ฒ์ด๋ค. ์ ์ ์ธ ์น ํ์ด์ง๋ฟ๋ง ์๋๋ผ ๋์ ์ธ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
TCP์ 4way-handshaking ์ฐ๊ฒฐ ์ข ๋ฃ ๋ฐฉ์ : [ (Client)๋ฐ์ดํฐ ๊ทธ๋ง ๋ณด๋ผ๋. -> (Server)์๊ฒ ์ด! -> (S)๋๋ ๋ฐ์ดํฐ ๊ทธ๋ง ๋ณด๋ผ๋. -> (C)์๊ฒ ์ด! ]
: ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ์ธํฐ๋ท ํต์ ํ๋ซํผ์์ ์น ์ฌ์ดํธ๋ฅผ ๋ก๋ํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๋ฐฉ๋ฒ
โ HTTP ์์ฒญ์ ๊ตฌ์กฐ
์์ฒญ ๋ผ์ธ(๋ฉ์๋/๊ฒฝ๋ก/๋ฒ์ ) + ์์ฒญ ํค๋ + ๊ณต๋ฐฑ ๋ผ์ธ + ์์ฒญ ๋ฉ์์ง ๋ณธ๋ฌธ
https://www.google.com/
์ฒ๋ผ ์์ ํ ํ์, index.html
์ฒ๋ผ ์๋์ ์ธ ํ์ ๋ฑ ๋ฉ์๋์ ์ ํ์ ๋ฐ๋ผ ๋ค์ํ ํฌ๋งท์ด ์๋ค.(+) URL์ด๋?
Uniform Resource Locater
: ์น์์์ ์์๋ค์ ์์น๋ฅผ ๋ํ๋ธ ๊ฒ, ํน์ ์น ์๋ฒ์ ํน์ ํ์ผ์ ์ ๊ทผํ๊ธฐ ์ํ ๊ฒฝ๋ก ํน์ ์ฃผ์
์ ๊ทผ ํ๋กํ ์ฝ://IP์ฃผ์or๋๋ฉ์ธ ์ด๋ฆ/๋ฌธ์ ๊ฒฝ๋ก/๋ฌธ์์ด๋ฆ
Ex)http://www.codecode.co.kr/does/index.html
- ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ๋ฅผ ์ฐพ๊ธฐ ์ํด์ ๋ฐ๋์ ํ์ํ ๊ฒ์ IP์ฃผ์๋ ๋๋ฉ์ธ ์ฃผ์! ๋ฌผ๋ฆฌ์ ์ธ ์ปดํจํฐ๋ฅผ ์ฐพ์ ํ์ ํด๋น ์ปดํจํฐ ์์ ๋ฑ์ฅํ๋ ์ํํธ์จ์ด ์๋ฒ๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ํฌํธ ๊ฐ์ด ํ์ํ๋ค.
- IP๋ ์ง ์ฃผ์์ ๊ฐ๋ค. ํ๋์ ์ปดํจํฐ์๋ IP๊ฐ ํ๋ ์กด์ฌํ๋ฉฐ, ์ง ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐฉ์ด ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ์ปดํจํฐ์ ์กด์ฌํ๋ ๋ฐฉ์ ๊ฐ๊ฐ ํฌํธ๋ผ๊ณ ํ๋ค. ํฌํธ ๋ฒํธ(0๋ณด๋ค ํฐ ์ซ์ ๊ฐ)๋ ๊ณ ์ ํ๋ค.
(+) http ์๋ฒ๋ ๊ธฐ๋ณธ ํฌํธ ๊ฐ์ด 80๋ฒ์ด๋ค.
- (+) URI๋ ์๋ณ์, URL์ ์๋ณ์+์์น๋ฅผ ๋ํ๋ธ๋ค. URI๊ฐ ๋ ํฌ๊ด์ ์ธ ๊ฐ๋ ์ด๋ค.
: ์น ํด๋ผ์ด์ธํธ(์ข ์ข ๋ธ๋ผ์ฐ์ )์์ HTTP ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์ธํฐ๋ท ์๋ฒ๋ก๋ถํฐ ์์ ํ๋ ์๋ต
โ HTTP ์๋ต์ ๊ตฌ์กฐ
์๋ต ๋ผ์ธ(๋ฒ์ /์ํ์ฝ๋/์ํ๋ฉ์์ง) + ์๋ต ํค๋ + ๊ณต๋ฐฑ ๋ผ์ธ + ์๋ต ๋ฉ์์ง ๋ณธ๋ฌธ
1xx : ์กฐ๊ฑด๋ถ ์๋ต - ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์์ ์ ๊ณ์ํฉ๋๋ค.
2xx : ์ฑ๊ณต - ์ ์์ ์ผ๋ก ์์ฒญ์ ์ํํ์ต๋๋ค.
3xx : ๋ฆฌ๋ค์ด๋ ์ ์๋ฃ - ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ง์น๊ธฐ ์ํด ์ถ๊ฐ ๋์์ ์ทจํด์ผ ํฉ๋๋ค.
4xx : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
5xx : ์๋ฒ๊ฐ ์์ฒญ์ ์ํํ์ง ๋ชปํ์ต๋๋ค.
HTTP๋ ์ ๋ณด๋ฅผ ํ ์คํธ๋ก ์ฃผ๊ณ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ์์ ์ ์ก ์ ํธ๋ฅผ ์ธํฐ์ ํธํ๋ ๊ฒฝ์ฐ ์ํ์ง ์๋ ๋ฐ์ดํฐ ์ ์ถ์ด ๋ฐ์ํ ์ ์๋ค. ์ด๋ฌํ ๋ณด์ ์ทจ์ฝ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด HTTP์ S(Secure)๋ฅผ ์ถ๊ฐํ HTTPS์ด๋ค. HTTPS๋ ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์ด๋ ์ฌ์ฉ ๋ชฉ์ ๋ฑ์ HTTP์ ๊ฑฐ์ ๋์ผํ์ง๋ง, HTTPS๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ชจ๋ ํต์ ๋ด์ฉ์ด ์ํธํ๋๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ค.
'S'๋ฅผ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ๊ณง, HTTP๊ฐ TCP์ ์ง์ ์ ์ผ๋ก ํต์ ํ๋ ๋ฐฉ์์ด ์๋๋ผ, ๋ณด์ ๊ณ์ธต(SSL ๋๋ TLS) ์์ HTTP ํ๋กํ ์ฝ์ ์น์ด ๋ณด์๋ HTTP ํต์ ์ ํจ์ ๋งํ๋ค.
SSL๊ณผ TLS?
SSL๊ณผ TLS๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ํต์ ํ๋กํ ์ฝ์ด๋ค. (TLS๊ฐ SSL์ ํ์ ๋ฒ์ ์ด์ง๋ง, SSL์ด ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ง์ด ์ฌ์ฉ๋๋ ์ฉ์ด์ด๋ค.)
โก๏ธ ๊ฐ์ธ ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด HTTPS๋ฅผ ์ด์ฉํด์ผ ํ์ง๋ง, ๋ ธ์ถ์ด ๋์ด๋ ๊ด์ฐฎ์ ๋จ์ํ ์ ๋ณด ์กฐํ ๋ฑ ๋ง์ ์ฒ๋ฆฌํ๊ณ ์๋ค๋ฉด HTTP๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ์ข๊ฒ ๋ค!
HTTP๋ ๋น๋์นญํค[๊ณต๊ฐํค] ์ํธํ ๋ฐฉ์๊ณผ ๋์นญํค ์ํธํ ๋ฐฉ์์ ํจ๊ป ์ฌ์ฉํ๋ค. ๊ณต๊ฐํค ๋ฐฉ์์ผ๋ก key๋ฅผ ์ ๋ฌํ๊ณ , ์๋ก ๊ณต์ ๋ ํค[๋์นญํค]๋ฅผ ๊ฐ์ง๊ณ ํต์ ํ๋ค.
๐ ๋์นญํค ์ํธํ ๋ฐฉ์์ด๋?
- ๋์ผํ ํค๋ก ์ํธํ, ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ ๋ฐฉ์์ด๋ค.
- ๋์นญํค๊ฐ ๋งค๋ฒ ๋๋ค์ผ๋ก ์์ฑ๋๋ฉด ๋์ถ๋์ด๋ ๋ค์์ ์ฌ์ฉํ ๋๋ ๋ค๋ฅธ ํค๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค.
- (๊ณต๊ฐํค ๋ฐฉ์๋ณด๋ค) ๋น ๋ฅด๊ฒ ํต์ ํ ์ ์๋ค.
๐ ๋น๋์นญํค[๊ณต๊ฐํค] ์ํธํ ๋ฐฉ์์ด๋?
- ์ํธํ์ ๋ณตํธํ์ ์ฌ์ฉ๋๋ ํค๊ฐ ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ด๋ค.
- Aํค๋ก ์ํธํ๋ฅผ ํ๋ฉด Bํค๋ก ๋ณตํธํ๋ฅผ ํ ์ ์๋ค.
- Bํค๋ก ์ํธํ๋ฅผ ํ๋ฉด Aํค๋ก ๋ณตํธํ๋ฅผ ํ ์ ์๋ค.- ๋ ์ค ํ๋๋ฅผ ๊ฐ์ธํค(Private Key)๋ผ ๋ถ๋ฅด๋ฉฐ, ์ด๋ ์์ ๋ง ๊ฐ์ง๊ณ ์๊ณ ๊ณต๊ฐ๋์ง ์๋๋ค.
- ๋๋จธ์ง ํ๋๋ฅผ ๊ณต๊ฐํค(Public Key)๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ํ์ธ์๊ฒ ์ ๊ณตํ๋ค. ๊ณต๊ฐํค๋ ์ ์ถ์ด ๋์ด๋ ๋น๊ณต๊ฐํค๋ฅผ ๋ชจ๋ฅด๋ฉด ๋ณตํธํ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค.
(๋น๋์นญํค์ ๋ ํค๊ฐ ๊ฐ์ธํค, ๊ณต๊ฐํค์ด๊ธฐ์ ๋น๋์นญํค ์ํธํ ๋ฐฉ์์ '๊ณต๊ฐํค' ์ํธํ ๋ฐฉ์์ด๋ผ๊ณ ๋ ํ๋ค.)
๋์ ๊ณผ์ ์ ๋ ๊ฐ๋๋ก ๋๋์ด์ ์ดํด๋ณด์. ์ด๋ HTTPS์ ์ฃผ๋ ๊ธฐ๋ฅ์ธ ๋ค์์ ๋ ๊ฐ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ค.
1. ๋ด๊ฐ ์ฌ์ดํธ์ ๋ณด๋ด๋ ์ ๋ณด๋ค์ ์ 3์๊ฐ ๋ชป ๋ณด๊ฒ ํ๋ค.
2. ์ ์ํ ์ฌ์ดํธ๊ฐ ๋ฏฟ์ ๋งํ ๊ณณ์ธ์ง๋ฅผ ์๋ ค์ค๋ค.
โ ์ฒซ ๋ฒ์งธ๋ ๋น๊ต์ ๊ฐ๊ฒฐํ๋ค. ์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ, ๋์นญํค ์ํธํ ๋ฐฉ์๊ณผ ๋น๋์นญํค ์ํธํ ๋ฐฉ์์ ํจ๊ป ์ฌ์ฉํ๋ค.
โ
๋น๊ต์ ๋ณต์กํ ๋ ๋ฒ์งธ ๊ธฐ๋ฅ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด์.
์ ์ํ ์ฌ์ดํธ๊ฐ ๋ฏฟ์ ๋งํ ๊ณณ์ธ์ง๋, ์ ๋ขฐํ ์ ์๋ ์ 3์์ธ ์ธ์ฆ๊ธฐ๊ด(CA : Certificate Authority)์ ํตํด ํ์ธํ ์ ์๋ค. ๊ทธ ์ผ๋ จ์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.