๋ธ๋ผ์ฐ์ ์์ www.google.com์ ์
๋ ฅํ๋ฉด ์ด๋ค ์ผ์ด ๋ฒ์ด์ง๊นโ
ํ ๋ฒ์ฏค์ ๊ถ๊ธํ๋ ๋ฌธ์ ์ ๋ํด ์์๋ณด๋๋ก ํ์.
์ฆ, ๋ธ๋ผ์ฐ์ ๊ฐ ์
๋ ฅ๋ฐ์ URL์ ๊ตฌ์กฐ๋ฅผ Protocol, Domain, Port๋ก ํด์ํ๋ ๊ฒ์ด๋ค.
์์์ ์์๋ก ์ ์ํ google์ URL์ ์์๋ก ๋ค์ด ์์ธํ ์ค๋ช
ํ์๋ฉด ์๋์ ๊ฐ๋ค.
https://www.google.com:443
Protocol: https
URL: www.google.com
Port: 443
๐ง ์ฌ๊ธฐ์ ๊ถ๊ธํ ์ !
๋๋ ํ๋กํ ์ฝ๊ณผ ํฌํธ๋ฅผ ์ ์ธํ URL๋ง ์
๋ ฅํ๋๋ฐ?
๋ง์ฝ ํ๋กํ ์ฝ์ด HTTP๋ผ๋ฉด 80 ํฌํธ๋ฅผ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์์ฒญํ๊ณ , ํ๋กํ ์ฝ์ด HTTPS๋ผ๋ฉด 443 ํฌํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์์ฒญํ๊ฒ ๋๋ URL๋ง ์
๋ ฅํด๋ ํ๋กํ ์ฝ๊ณผ ํฌํธ๊น์ง ๋ชจ๋ ์
๋ ฅ์ด ๋ ์ํ๊ฐ ๋๋ค.
ํ์ง๋ง ๋ช
์์ ์ผ๋ก ํฌํธ๋ฅผ ์ ์ธํ๋ค๋ฉด ์ ์ธํ ํฌํธ๊ฐ์ ์
๋ ฅํด์ผ ํ๋ค!๐
HTTPS ํ๋กํ ์ฝ๋ก ์ ๊ทผํด์ผ ํ๋ ์ฃผ์์ HTTP๋ก ์ ๊ทผํ๊ฒ ๋๋ฉด ์๋ฒ์ธก์์ 302 ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ์ด์ฉํด ๊ฐ์ ๋ก HTTPS๋ก ์ ํ์ํฌ ์ ์๋ค.
ํ์ง๋ง ์ด๊ฑด HTTP ํ๋กํ ์ฝ์ ๊ฑฐ์ณ๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ผ ๋ณด์์ ์ทจ์ฝํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์๊ฒ HTTPS๋ฅผ ๊ฐ์ ํ๋๋ก ๊ถ์ฅํ๋๋ฐ ์ด๊ฒ ๋ฐ๋ก HTST๋ค!๐
HSTS๋ ๋ธ๋ผ์ฐ์ ๊ฐ HTTPS ํ๋กํ ์ฝ๋ง์ ์ฌ์ฉํด์ ์๋ฒ์ ํต์ ํ๋๋ก ํ๋ ๊ธฐ๋ฅ์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์์ ์ HSTS ์บ์์ HTTPS๋ก๋ง ์ฐ๊ฒฐ๋๋๋ก ์์ฒญํ URL์ ์ ์ฅํด์ ๋ง๋ HSTS ๋ชฉ๋ก์ด ์๋๋ฐ ์ด ๋ชฉ๋ก์ ์กฐํํด์ ํด๋น ์์ฒญ์ HTTPS๋ก ๋ณด๋ผ์ง ํ๋จํ๋ค.
๋ง์ฝ ์ด ๋ชฉ๋ก์ ํด๋น URL์ด ์๋ค๋ฉด ๋ช
์์ ์ผ๋ก HTTP๋ก ๋ณด๋ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ HTTPS๋ก ์์ฒญํ๊ณ ์ด ๋ชฉ๋ก์ ์๋ค๋ฉด ์ฒซ ์์ฒญ์ HTTP๋ก ๋ณด๋ด๊ฒ ๋๋ค.
ํด๋น ๋๋ฉ์ธ ์ฃผ์๋ก๋ ์ปดํจํฐ๋ผ๋ฆฌ ํต์ ์ด ๋ถ๊ฐ๋ฅํ๋ DNS Lookup ๊ณผ์ ์ ํตํด ํด๋น ๋ธ๋ผ์ฐ์ ์์ ์์ ์ ๋ก์ปฌ hosts ํ์ผ๊ณผ DNS cache์ ํด๋นํ๋ URL์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํด์ผ ํ๋ค.
๋ง์ฝ, ์กด์ฌํ์ง ์๋๋ค๋ฉด DNS ์๋ฒ์ ์์ฒญํ์ฌ ํด๋น URL์ IP์ฃผ์๋ก ๋ณํํ๋ค.
๐ก DNS Lookup ์ด๋?
๋ฆฌ๋ ์ค, ๋งฅOS, ์๋์ฐ ๋ฑ์์ nslookup๋ผ๋ ๋ช ๋ น์ด๋ก DNS ๋ ์ฝ๋๋ฅผ ์กฐํํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๐DNS Lookup ๊ณผ์
Browser -> hosts ํ์ผ -> DNS Cache ์์๋๋ก Domain์ ๋งค์นญ๋๋ IP๋ฅผ ์ฐพ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ Root Domain Server์์๋ถํฐ Serve Domain Server ์์ผ๋ก ์ฐพ๊ฒ ๋๋ค.
๐ก hosts ํ์ผ์ด๋?
hosts ํ์ผ์ ํธ์คํธ ๋ค์์ ๋์ํ๋ IP์ฃผ์๋ฅผ ์ ์ฅํ๋ ํ์ผ๋ก DNS ์๋ฒ์์ ์ฃผ์์ ๋ณด๋ฅผ ์ ๊ณต๋ฐ์ง ์์๋ ์๋ฒ์ ์์น๋ฅผ ์ฐพ๊ฒ ํด์ฃผ๋ ํ์ผ์ด๋ค.
OS๋ณ๋ก ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, DNS ์๋ฒ๊ฐ ์กด์ฌํ๊ธฐ ์ ์ IP์ฃผ์๋ฅผ ๋งคํํ๋ ํ ์ด๋ธ๋ก ์ฌ์ฉํ๋๋ฐ ํ์ฌ๋ ๊ทธ ์ญํ ์ DNS ์๋ฒ๊ฐ ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ธ ์ํฉ์์๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ๋ณผ ์ ์๋ค.
DNS ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ๋ฐ์์ผ๋ ์๋ฒ๋ก ์์ฒญํด์ผ ํ์ง๋ง ํด๋น IP ์ฃผ์๋ก ์ด๋ป๊ฒ ๊ฐ์ผํ๋์ง ๊ฒฝ๋ก๋ฅผ ์ ์ ์๋ค.
๊ทธ ๊ฒฝ๋ก๋ ๋คํธ์ํฌ ์ฅ๋น์ธ ๋ผ์ฐํฐ๋ฅผ ํตํด ์ ์ ์๋๋ฐ, ๋ผ์ฐํฐ์์ ๋ผ์ฐํ
ํ
์ด๋ธ์ ํตํด ํด๋น ์์ฒญ์ด ์ด๋ค ๊ฒฝ๋ก๋ฅผ ํตํด ๊ฐ์ผํ ์ง ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ผ์ฐํฐ๋ฅผ ํตํด ์์ฒญ์ ํด๋น IP๋ฅผ ์ฐพ์๊ฐ๊ฒ ๋๋ค.
์ค์ง์ ์ธ ํต์ ์ ํ๊ธฐ ์ํด์๋ ๋
ผ๋ฆฌ ์ฃผ์์ธ IP ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์์ธ MAC ์ฃผ์๋ก ๋ณํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด๋น ๋คํธ์ํฌ ์์์ ARP๋ฅผ Broad Castingํ๋ค.
๊ทธ๋ผ ํด๋น IP์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋
ธ๋๊ฐ ์์ ์ MAC ์ฃผ์๋ฅผ ์๋ตํ๋ค.
๐ก ARP๋?
Address Resolution Protocol์ ์ค์๋ง๋ก ๋คํธ์ํฌ ์์์ IP ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ MAC ์ฃผ์๋ก ๋ฐ์ธ๋ฉ ์ํค๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ด๋ค.
๐ก MAC ์ฃผ์๋?
MAC ์ฃผ์๋ 12๊ฐ์ 16์ง์ ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌผ๋ฆฌ์ ์ฃผ์์ด๋ค.
์ด ์ซ์ ์ค ์ 6๊ฐ์ ์ซ์๋ ๋คํธ์ํฌ ์นด๋๋ฅผ ๋ง๋ ํ์ฌ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๊ณ ๋ค 6๊ฐ์ ์ซ์๋ ๊ฐ ํ์ฌ์์ ์์๋ก ๋ถ์ด๋ ์ผ์ข ์ ์๋ฆฌ์ผ ๋ฒํธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํด๋น ์๋ฒ์ ์ ์ํ๊ธฐ ์ํด์๋ TCP ์์ผ ์ฐ๊ฒฐ์ ์งํํด์ผ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก TCP ํต์ ์ ํ๊ธฐ ์ํด์๋ 3-way-handshaking ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋๋ฐ ์ฌ๊ธฐ์ 3-way-handshaking ๊ณผ์ ์ด๋ ์๋ก์ ์ํ๋ฅผ ๋ฌป๋๊ฑฐ๋ผ ๋ณผ ์ ์๋ค.
Client: Server์ผ, ๋ด๊ฐ ์์ฒญํ๋ฉด ๋ฐ์ ์ ์์ด?
Server: ์! ๋ฐ์ ์ ์์ด! ๋๋ ๋ด๊ฐ ์๋ตํ๋๊ฑฐ ๋ฐ์ ์ ์์ด?
Client: ์! ๋๋ ๋ฐ์ ์ ์์ด!
ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ(SYN)์ ํ๋๋ฐ ์ด ๋ ํด๋ผ์ด์ธํธ๋ CLOSED, ์๋ฒ๋ LISTEN ์ํ์ด๋ค.
๋ค๋ฅธ ์ปดํจํฐ๋ก ์ ์ก๋ TCP ์์ผ์ผ๋ก ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๋๋ก ์์ฒญํ๋๋ฐ SYN์ด ๋ ๋ฒ์งธ ์์คํ
์์ ์์ ๋๋ฉด SYN/ACK๊ฐ SYN์ด ์์ฒญํ ์ฃผ์๋ก ๋ค์ ์ ์ก๋๊ณ ๋ง์ง๋ง์ผ๋ก๋ ์๋ ์ปดํจํฐ๊ฐ SYN/ACK๋ฅผ ์์ ํ๋ฉด ์ต์ข
ACK๊ฐ ์ ์ก๋๋ค.
TCP ์ฐ๊ฒฐ์ด ์ฑ๊ณตํ์์ผ๋, ์๋ฒ์ ์์ฒญํ๋ ํ์ด์ง๋ฅผ ๋ฌ๋ผ๊ณ ํ๋ฉด ์๋ฒ๋ ์ด ์์ฒญ์ ์๋ฝํ ์ ์๋ ๊ฒ์ธ์ง ํ์ธ ํ ์ฌ๋ฐ๋ฅธ ์์ฒญ์ด๋ผ๊ณ ํ๋จ ๋ ๊ฒฝ์ฐ ์๋ต์ ์์ฑํด์ ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌํ๋ค.
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ ์ ํํ ์์์ ์๋ฒ์ ์์ฒญํ๊ณ ๋ธ๋ผ์ฐ์ ์ ํ์ํ๋ ๊ฒ์ธ๋ฐ, ๋ณดํต ๊ทธ ์์์ HTML ๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ฑฐ๋ PDF ํ์ผ ๋๋ ์ด๋ฏธ์ง ํ์ผ ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์๋ฒ์์ ์ ๋ฌ๋ฐ์ ์๋ต์ HTML, CSS ๋ฑ์ ์ฝ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, ๋ธ๋ผ์ฐ์ ๊ฐ HTML๊ณผ CSS์ ๋ช
์ธ์ ๋ฐ๋ผ HTML ํ์ผ์ ํด์ํด์ ํ๋ฉด์ ํ์ํด์ค๋ค.
์ด๋ ๊ฒ ์์ฒญ ๋ฐ์ ๋ด์ฉ์ ๋ธ๋ผ์ฐ์ ์ ํ์ํ๋ ์ผ์ ํ๋ ๊ฑธ ๋ ๋๋ง ์์ง์ด๋ผ๊ณ ํ๋ค.
๐ก ๋ ๋๋ง ์์ง์ ๊ธฐ๋ณธ์ ์ธ ๋์ ๊ณผ์
1. DOM ํธ๋ฆฌ ๊ตฌ์ถ์ ์ํ HTML ํ์ฑ
2. ๋ ๋ ํธ๋ฆฌ ๊ตฌ์ถ
3. ๋ ๋ ํธ๋ฆฌ ๋ฐฐ์น
4. ๋ ๋ ํธ๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ