์์
์ฐ๋ฆฌ๊ฐ ์์ฃผ์ฌ์ฉํ๋ ํฌ๋กฌ, ์ฌํ๋ฆฌ, ํ์ด์ดํญ์ค ๋ฑ,, ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ฐฝ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด
์ด๋ค์ผ์ด ์ผ์ด๋๋์ง ์์๋ณด์
๋ค์ด๊ฐ๊ธฐ์ ๊ฐ๋จํ ๊ด๋ จ์ฉ์ด ์ ๋ฆฌ
- DNS (Domain Name System Servers)
'๋๋ฉ์ธ ์ด๋ฆ ์์คํ ์๋ฒ'๋ URL๋ค์ ์ด๋ฆ๊ณผ IP์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ์น์ฌ์ดํธ๋ฅผ ์ํ ์ฃผ์๋ก์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์๋ ์ธํฐ๋ท์์ ์ซ์๋ก ๋ IP์ฃผ์(ex. 63.245.217.105)๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งตํ์ ํตํด
์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๋๋ก ํ๋ค. ( ex :http://125.209.222.142 ๋์ DNS ๊ฐ์ ์ํตํด www.naver.com ) - TCP/IP (Transmission Control Protocol / Internet Protocol)
'์ ์ก์ ์ด๊ท์ฝ'๊ณผ '์ธํฐ๋ท๊ท์ฝ'์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์น์ ๊ฑด๋ ์ฌํํ๋์ง ์ ์ํ๋ ํต์ ๊ท์ฝ์ด๋ค.
์ด๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ๊ฒ์, IP์ฃผ์ ์ฒด๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉฐ TCP์ ํน์ฑ์ ํ์ฉํด ์ก์ ์์ ์์ ์์ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ์ ์์ฑํ๊ณ ์ ๋ขฐ์ฑ์ ์ ์งํ ์ ์๋๋ก ํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค. ์ฆ ์ก์ ์๊ฐ ์์ ์์๊ฒ IP์ฃผ์๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ๊ทธ ๋ฐ์ดํฐ๊ฐ ์ ๋๋ก ๊ฐ๋์ง์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด๋ค. - HTTP (Hypertext Transfer Protocol)
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ํต์ ํ ์ ์๊ฒ ํ๊ธฐ ์ํ ์ธ์ด๋ฅผ ์ ์ํ๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ท์ฝ์ผ๋ก, ์ฝ๊ฒ ๋งํด ์์ฒญ๊ณผ ์๋ต์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ด "์ด๋ค ๋ฐ์ดํฐ ์ฃผ์ธ์"๋ผ๊ณ ์์ฒญํ๋ฉด, "์ด ๋ฐ์ดํฐ ์ค๊ฒ์" ๋ผ๊ณ ์๋ตํ๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ฃผ๋ก HTML๋ฌธ์๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ์ ์ฌ์ฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์ url ์ฃผ์๋ฅผ ์ ๋ ฅํ์ ๋ ์ผ์ด๋๋ ์ผ๋ค์ ์ฌ๋ ๋จ๊ณ๋ก ์ ๋ฆฌํ ์ ์๋ค.
1. ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ www.google.com ์ ์ ๋ ฅํ๋ค.
2. ๋ธ๋ผ์ฐ์ ๊ฐ www.google.com ์ IP ์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด ์บ์์์ DNS ๊ธฐ๋ก์ ํ์ธํ๋ค.
3. ๋ง์ฝ ์์ฒญํ URL(www.google.com)์ด ์บ์์ ์๋ค๋ฉด, ISP์ DNS ์๋ฒ๊ฐ DNS ์ฟผ๋ฆฌ๋ก www.google.com์ ํธ์คํ ํ๋ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ฐพ๋๋ค.
4. ๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ์์ํ๋ค.
5. ๋ธ๋ผ์ฐ์ ๊ฐ ์น์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ธ๋ค.
6. ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ๋ณด๋ธ๋ค.
7. ์๋ฒ๊ฐ HTTP ์๋ต์ ๋ณด๋ธ๋ค.
8. ๋ธ๋ผ์ฐ์ ๊ฐ HTML ์ปจํ ์ธ ๋ฅผ ๋ณด์ฌ์ค๋ค.
๐ซ์ฃผ์์ฐฝ์ ์ฃผ์๋ฅผ ๊ฒ์ํ๋ ์์๋ฅผ ํตํด ์์๋ณด์
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ www.google.com ์ ์ ๋ ฅํ๋ค.
์น๋ธ๋ผ์ฐ์ ๋ ์บ์ฑ๋ DNS ๊ธฐ๋ก๋ค์ ํตํด ํด๋น ๋๋ฉ์ธ์ฃผ์์ ๋์ํ๋ IP์ฃผ์๋ฅผ ํ์ธ
์ธํฐ๋ท์ ๋ชจ๋ URL( www.naver.com, www.google.com, www.youtube.com ๋ฑ..)์๋
๊ณ ์ ํ IP ์ฃผ์๊ฐ ํ ๋น๋์ด ์๋ค.
DNS์ ์ฃผ์ ๋ชฉ์ ์ ์ฌ๋๋ค์ด ์ฝ๊ฒ ์ฌ์ดํธ ์ฃผ์๋ฅผ ์ฐพ์ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฒ์ด๋ค.
๋ง์ฝ DNS๊ฐ ์๋ค๋ฉด google.com๊ณผ ๊ฐ์ด ๋๋ฉ์ธ ์ฃผ์๊ฐ ์๋, 142.250.196.110 ๋ผ๋ ip ์ฃผ์๋ฅผ ํ๋ํ๋ ์ธ์์ ์ฌ์ดํธ์ ์ ์ํด์ผํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด DNS๋ฅผ ์ด์ฉํ๋ค.
DNS ๊ธฐ๋ก์ ์ฐพ๊ธฐ ์ํด์ ๋ฐ๋ก DNS ์ง์๋ฅผ ํ์ง ์๊ณ ๋ธ๋ผ์ฐ์ ๋ ๋จผ์ ๋ค ๊ฐ์ ์บ์๋ฅผ ํ์ธํ๋ค.
๋ง์ฝ ์์ฒญํ URL(www.google.com)์ด ์บ์์ ์๋ค๋ฉด, ISP์ DNS ์๋ฒ๊ฐ DNS ์ฟผ๋ฆฌ๋ก www.google.com์ ํธ์คํ ํ๋ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ฐพ๋๋ค.
์ฒซ ๋ฒ์งธ, DNS ์ฟผ๋ฆฌ๋ ์ฐ์ ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ํ์ธํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ด๊ฐ ์ด์ ์ ๋ฐฉ๋ฌธํ ์น ์ฌ์ดํธ์ DNS ๊ธฐ๋ก์ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ์ฅํ๊ณ ์๋ค.
๋ ๋ฒ์งธ, ๋ธ๋ผ์ฐ์ ๋ OS ์บ์๋ฅผ ํ์ธํ๋ค. ๋ธ๋ผ์ฐ์ ์บ์์ ์ํ๋ DNS ๋ ์ฝ๋๊ฐ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๊ฐ ๋ด ์ปดํจํฐ OS์ ์์คํ ํธ์ถ(ex. ์๋์ฐ์์ gethostname ํธ์ถ)์ ํตํด DNS ๊ธฐ๋ก์ ๊ฐ์ ธ์จ๋ค. (OS๋ DNS ๋ ์ฝ๋ ์บ์๋ฅผ ์ ์ฅํ๊ณ ์๋ค.)
์ธ ๋ฒ์งธ, ๋ธ๋ผ์ฐ์ ๋ ๋ผ์ฐํฐ ์บ์๋ฅผ ํ์ธํ๋ค. ๋ง์ฝ ์ปดํจํฐ์๋ ์ํ๋ DNS ๋ ์ฝ๋๊ฐ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๋ผ์ฐํฐ์์ DNS ๊ธฐ๋ก์ ์ ์ฅํ ์บ์๋ฅผ ํ์ธํ๋ค.
๋ง์ง๋ง์ผ๋ก, ISP ์บ์๋ฅผ ํ์ธํ๋ค. ๋ง์ฝ ์ ๋ชจ๋ ๋จ๊ณ์์ DNS ๊ธฐ๋ก์ ์ฐพ์ง ๋ชปํ๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ISP์์ DNS ๊ธฐ๋ก์ ์ฐพ๋๋ค. ISP(Internet Service Provider)๋ DNS ์๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ํด๋น ์๋ฒ์์ DNS ๊ธฐ๋ก ์บ์๋ฅผ ๊ฒ์ํ ์ ์๋ค.
์์ ๋ฐฉ๋ฒ์ผ๋ก DNS ์บ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๋ฉด DNS ์๋ฒ์ ์ง์๋ฅผ ํตํด ip ์ฃผ์๋ฅผ ์ฐพ์์จ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ์์ํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ๋ฐ๋ฅธ IP ์ฃผ์๋ฅผ ์์ ํ๋ฉด IP ์ฃผ์์ ์ผ์นํ๋ ์๋ฒ์ ์ฐ๊ฒฐํด ์ ๋ณด๋ฅผ ์ ์กํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ธํฐ๋ท ํ๋กํ ์ฝ(IP, Internet Protocol)์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ฐ๊ฒฐ์ ๊ตฌ์ถํ๋ค. ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ์ธํฐ๋ท ํ๋กํ ์ฝ์ด ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก HTTP ์์ฒญ์์๋ TCP(Transmission Control Protocol) ๋ผ๋ ์ ์ก ์ ์ด ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค.
์ธํฐ๋ท ํ๋กํ ์ฝ(IP, Internet Protocol)์ ์ก์ ํธ์คํธ์ ์์ ํธ์คํธ๊ฐ ํจํท ๊ตํ ๋คํธ์ํฌ(ํจํท ์ค์์นญ ๋คํธ์ํฌ, Packet Switching Network)์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ ์ฌ์ฉํ๋ ์ ๋ณด ์์ฃผ์ ๊ท์ฝ(ํ๋กํ ์ฝ, Protocol)์ด๋ฉฐ, OSI ๋คํธ์ํฌ ๊ณ์ธต์์ ํธ์คํธ์ ์ฃผ์์ง์ ๊ณผ ํจํท ๋ถํ ๋ฐ ์กฐ๋ฆฝ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. ์ค์ฌ์ ์์ดํผ(IP)๋ผ๊ณ ๋ ํ๋ค. (์ถ์ฒ: ์ํคํผ๋์)
๋ด ์ปดํจํฐ(ํด๋ผ์ด์ธํธ)์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ํจํท์ ์ ์กํ๋ ค๋ฉด TCP ์ฐ๊ฒฐ์ ํด์ผ ํ๋ค. ์ด ์ฐ๊ฒฐ์ TCP/IP 3-way handshake๋ผ๋ ์ฐ๊ฒฐ ๊ณผ์ ์ ํตํด ์ด๋ค์ง๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ SYN(synchronize: ์ฐ๊ฒฐ ์์ฒญ) ๋ฐ ACK(acknowledgement: ์น์ธ) ๋ฉ์์ง๋ฅผ ๊ตํํ์ฌ ์ฐ๊ฒฐ์ ์ค์ ํ๋ 3๋จ๊ณ ํ๋ก์ธ์ค์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์น์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ธ๋ค.
TCP ์ฐ๊ฒฐ์ด ์ค์ ๋๋ฉด ๋ฐ์ดํฐ ์ ์ก์ด ์์๋๋ค.
๋ธ๋ผ์ฐ์ ๋www.google.com ์น ํ์ด์ง๋ฅผ ์์ฒญํ๋ GET ์์ฒญ์ ๋ณด๋ผ ๊ฒ์ด๋ค.
๋ง์ฝ ์๊ฒฉ ์ฆ๋ช (credentials)์ ์ ๋ ฅํ๊ฑฐ๋ form์ ์ ์ถํ๋ ๊ฒฝ์ฐ POST ์์ฒญ์ ์ฌ์ฉํ ์ ์๋ค. ์ด ์์ฒญ์๋ ๋ธ๋ผ์ฐ์ ์๋ณ(User-Agent ํค๋), ์๋ฝํ ์์ฒญ ์ ํ(Accept ํค๋) ๋ฐ ์ถ๊ฐ ์์ฒญ์ ์ํด TCP ์ฐ๊ฒฐ์ ์ ์งํ๋ผ๋ ์ฐ๊ฒฐ ํค๋์ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๋ ํฌํจ๋๋ค.
๋ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด ๋๋ฉ์ธ์ ๋ํด ์ ์ฅํ ์ฟ ํค์์ ๊ฐ์ ธ์จ ์ ๋ณด๋ ์ ๋ฌํ๋ค.
์์ฒญ ์์๋ ๋ธ๋ผ์ฐ์ ์ ์ฝ์์ฐฝ์ ์ด๊ณ HTTP ์์ฒญ ํค๋๋ฅผ ํ์ธํ ์ ์๋ค.
์น ์๋ฒ ํผ์์ ๋ชจ๋ ๋ก์ง์ ์ํํ๊ธฐ์ ์๋ฒ์ ๋ถ๋ด์ดํฌ๋ฉฐ ๊ณผ๋ถํ๊ฐ ์ผ์ด๋ ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ์ผ์ ๋๋ ์ญํ ์ ํ๋ ์ดํ๋ฆฌ์ผ์ด์
์๋ฒ(Web Application Server)๊ฐ ์๋ค.
WAS๋ ์ฌ์ฉ์์ ์ปดํจํฐ๋ ์ฅ์น์ ์น์ดํ๋ฆฌ์ผ์ด์
์ ์ํํด์ฃผ๋ ๋ฏธ๋ค์จ์ด๋ฅผ ๋งํ๋ค.
๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ผ๋ฉด,
์น์๋ฒ๋ ํ์ด์ง์ ๋ก์ง์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ ์ฐ๋์ ์ํด WAS์๊ฒ ์ด๋ค์ ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ๋ค.
๊ทธ๋ฌ๋ฉด WAS๋ ์ด ์์ฒญ์ ๋ฐ์ ๋์ ์ธ ํ์ด์ง์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๊ณ ,
DB์์ ํ์ํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๋ฐ์์ ํ์ผ์ ์์ฑํ๋ค.
ํ์ผ์ ์์ฑํ๋ค ์น์๋ฒ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ ์กํ๋ค.
์๋ฒ๊ฐ HTTP ์๋ต์ ๋ณด๋ธ๋ค.
์์ WAS์์ ๋ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ ์น๋ธ๋ผ์ผ์ ์ ์๋ต์ผ๋ก ๋ณด๋ธ๋ค
์๋ฒ ์๋ต์๋ ์์ฒญํ ์น ํ์ด์ง์ ํจ๊ป ์ํ ์ฝ๋(status code), ์์ถ ์ ํ(Content-Encoding), ํ์ด์ง ์บ์ฑ ๋ฐฉ๋ฒ(Cache-Control), ์ค์ ํ ์ฟ ํค, ๊ฐ์ธ ์ ๋ณด ๋ฑ์ด ํฌํจ ๋๋ค.
์๋ฒ์ HTTP ์๋ต ์์์ด๋ค:
- 1xx (Information Response): ์ ๋ณด ๋ฉ์์ง๋ง์ ๋ํ๋ธ๋ค. ์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์๋ฒ์ ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ๋ ๊ณ์ํด์ ์์ ์ ํ๋ผ๋ ๋ป.
- 2xx (Successful Response): ์๋ฒ์์ ์์ฒญ์ด ์ฑ๊ณตํจ์ ๋ํ๋
- 3xx (Redirection Message) : ์์ฒญ ์๋ฃ๋ฅผ ์ํด ์ถ๊ฐ ์์ ์กฐ์น๊ฐ ํ์ํจ์ ์๋ฏธํจ.
- 4xx (Client Error Response) : ํด๋ผ์ด์ธํธ์ Request์ ์๋ฌ๊ฐ ์์์ ์๋ฏธํจ.
- 5xx (Server Error) : ์๋ฒ ์ธก์ ์ค๋ฅ๋ก request๋ฅผ ์ํํ ์ ์์.
๋ธ๋ผ์ฐ์ ๊ฐ HTML ์ปจํ ์ธ ๋ฅผ ๋ณด์ฌ์ค๋ค.
๋ธ๋ผ์ฐ์ ๋ ์๋ต๋ฐ์ HTML์ ํ๋ฉด์ ๋จ๊ณ๋ณ๋ก ํ์ํ๋ค.
์ฒซ์งธ, HTML ์๋ ๋๋งํ๋ค. ๊ทธ๋ฐ ๋ค์ HTML ํ๊ทธ๋ฅผ ํ์ธํ๊ณ ์ด๋ฏธ์ง, CSS ์คํ์ผ์ํธ, ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ฑ๊ณผ ๊ฐ์ ์น ํ์ด์ง์ ์ถ๊ฐ ์์์ ๋ํ GET ์์ฒญ์ ๋ณด๋ธ๋ค. ์ ์ ํ์ผ(Static File)์ ๋ธ๋ผ์ฐ์ ์์ ์บ์ฑ๋๋ฏ๋ก ๋ค์์ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ ๋ ๋ค์ ๊ฐ์ ธ์ฌ ํ์๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก, www.google.com ํ์ด์ง๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ํ๋๋ค.
๐์ถ์ฒ
https://velog.io/@khy226/๋ธ๋ผ์ฐ์ ์-url์-์ ๋ ฅํ๋ฉด-์ด๋ค์ผ์ด-๋ฒ์ด์ง๊น
https://bohyeon-n.github.io/deploy/network/internet-2.html
https://velog.io/@eassy/www.google.com์-์ฃผ์์ฐฝ์์-์ ๋ ฅํ๋ฉด-์ผ์ด๋๋-์ผ
'๐Technical interview(Front)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Promise (0) | 2022.11.16 |
---|---|
[JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? (0) | 2022.11.09 |
[JavaScript] Scope๋? (0) | 2022.11.05 |
์ฝ๋ฐฑ ํจ์(Callback) (0) | 2022.11.03 |
Closure ํด๋ก์ (0) | 2022.10.23 |