What happens when you type a URL into your browser?
URL์ ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํ์ ๋ ์ผ์ด๋๋ ๊ณผ์ ์ ๋ฅํ๊ฒ ์์๋ณด์!
1. URL ํ์ฑ
๋ธ๋ผ์ฐ์ ๋ ์ ๋ ฅ๋ URL์ ํด์ํ์ฌ
ํ๋กํ ์ฝ / ๋๋ฉ์ธ ๋ค์ / ๊ฒฝ๋ก / ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฑ์ผ๋ก ๋ถ๋ฆฌํ๋ค.
๋ธ๋ผ์ฐ์ ๋ URL์์ example.com ์ด๋ผ๋ ๋๋ฉ์ธ ๋ค์์ ์ถ์ถํ๊ณ ์ด๋ฅผ ํตํด DNS ์ฟผ๋ฆฌ๊ฐ ์์๋๋ค.
2. DNS (Domain Name System) ์กฐํ
Domain Name์ ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฌ์ด ์ฃผ์์ง๋ง, ์ปดํจํฐ๋ IP ์ฃผ์๋ฅผ ํตํด ํต์ ํ๋ค.
DNS๋ ๋๋ฉ์ธ ๋ค์์ IP๋ก ๋ณํํ๊ธฐ ์ํด ์กด์ฌํ๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ DNS ์๋ฒ์ ๊ฒ์ํ๊ธฐ ์ ์ ์บ์ฑ๋ DNS ๊ธฐ๋ก์ ๋จผ์ ํ์ธํ๋ค.
์บ์์ ํด๋น ์ ๋ณด๊ฐ ์๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ๋๋ฉ์ธ์ IP ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด DNS ์๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค.
์ด ์์ฒญ์ ์ฌ์ฉ์์ ISP(Internet Service Provider)๋ ์ง์ ๋ DNS ์๋ฒ๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ ISP(ex. KT, SK ๋ธ๋ก๋๋ฐด๋..) ๋ฅผ ํตํด DNS ์์ฒญ์ ์ฒ๋ฆฌํ์ง๋ง,
์ธํฐ๋ท์ ์ง์ ์ฐ๊ฒฐ๋ ๋คํธ์ํฌ ํ๊ฒฝ(ex. ์ฌ์ค ๋คํธ์ํฌ, ๊ธฐ์ ๋คํธ์ํฌ)์์๋ ISP๋ฅผ ๊ฑฐ์น์ง ์๊ณ ์ง์ ๋ DNS ์๋ฒ์ ์ง์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค.
3. DNS Query์ ๊ณ์ธต์ ํ์
๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํ๊ธฐ ์ํด DNS ์๋ฒ์ ๋ณด๋ด๋ ์์ฒญ์ DNS query๋ผ๊ณ ํ๋ค.
DNS query๋ ํ์ฌ DNS ์๋ฒ์ ์ํ๋ IP ์ฃผ์๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ค๋ฅธ DNS ์๋ฒ๋ฅผ ๋ฐฉ๋ฌธํ๊ฒ ๋๊ณ , ์ํ๋ IP ์ฃผ์๋ฅผ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
URL์ ๊ณ์ธตํ๊ฐ ๋์ด์๋๋ฐ, ์ญ์์ผ๋ก ์๋ฒฝํ ์ฃผ์๋ฅผ ์ฐพ์ ์ด ์ฃผ์์ ํด๋นํ๋ IP ์ฃผ์๋ฅผ ๋งคํํ๊ฒ ๋๋ค.
์ญ์์ผ๋ก ํด๋น ๋๋ฉ์ธ ์ด๋ฆ์ ๋ง๋ ์ง์ญ DNS๋ฅผ ํ์ํ๋ฉฐ, root DNS ์๋ฒ๊ฐ ๋์ฌ ๋๊น์ง ๊ฑฐ๊พธ๋ก ํ์ํ๋ค.
์ด์ ๊ฐ์ด Local DNS๊ฐ ์ฌ๋ฌ ์๋ฒ๋ฅผ ์ฐจ๋ก๋๋ก ๋ฌผ์ด๋ด์ ๋ต์ ์ฐพ๋ ๊ณผ์ ์ Recursive Query๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ example.com์ IP ์ฃผ์๋ฅผ ์์ฒญํ๋ฉด, ๋ฃจํธ DNS ์๋ฒ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ธ๋ค.
๋ฃจํธ DNS ์๋ฒ๋ ์ต์์์ ์๋ ์๋ฒ๋ก, ๋ชจ๋ ๋๋ฉ์ธ์ ์ต์์ ๊ณ์ธต์ธ TLD(.com, .net ๋ฑ)์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ฃจํธ ์๋ฒ๋ '.com' TLD ์๋ฒ์ ์์น๋ฅผ ์๋ ค์ค๋ค.
์ด์ ๋ธ๋ผ์ฐ์ ๋ .com DNS ์๋ฒ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ธ๋ค. .com DNS ์๋ฒ๋ .com ๋๋ฉ์ธ์ ์ํ ํ์ ๋๋ฉ์ธ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ด์ .com ์๋ฒ๋ example.com ๋๋ฉ์ธ์ ๋ํ ๋ค์ ์๋ฒ ์์น๋ฅผ ๋ฐํํ๋ค.
์ด ๋ค์ ์๋ฒ๋ example.com์ IP ์ฃผ์๋ฅผ ๋ฐํํ๊ฒ ๋๋ค.
[Root DNS] -> [.com DNS] -> [.example DNS]
์ด๋ฅผ ํตํด IP ์ฃผ์๊ฐ ๋ฐ๋์ด๋ ์ฌ์ฉ์๋ค์๊ฒ ๋๊ฐ์ ๋๋ฉ์ธ ์ฃผ์๋ก ์๋น์ค ํ ์ ์๋ค.
์ ์ญ์์ผ๋ก ํ์ํ๋๊ฐ?
DNS ์์คํ ์ ๊ณ์ธต์ ์ผ๋ก ๋๋์ด ๊ด๋ฆฌํจ์ผ๋ก์จ ํ๋์ ์๋ฒ๊ฐ ๋ชจ๋ ๋๋ฉ์ธ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ ํ์๊ฐ ์๊ณ ,
์ด๋ฅผ ํตํด ์ ์ธ๊ณ์ ๋๋ฉ์ธ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๋ถ์ฐ๊ด๋ฆฌํ ์ ์๋ค.
4. TCP ์ฐ๊ฒฐ ๋ฐ HTTP ์์ฒญ ์ ์ก
IP ์ฃผ์๋ฅผ ์ป์ ๋ธ๋ผ์ฐ์ ๋ ์น ์๋ฒ์ HTTP์์ฒญ์ ๋ณด๋ธ๋ค. HTTP ์์ฒญ์ ์ฃผ๋ก HTML ๋ฌธ์๋ฅผ ์์ฒญํ๋ค.
TCP๋ ์ ๋ขฐ์ฑ์ ํ๋ณดํ๊ณ ์ฐ๊ฒฐํ ๋ 3-way handshake ์์ ์ ์งํํ๋ฉฐ, 4-way handshake ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ํด์ ํ๋ค.
์ฐธ๊ณ ๋ก TCP๋ 3-way handsahke ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ ์๋ ๊ณ์ธต์ด๋ผ๊ณ ํ๋ฉฐ,
UDP๋ ์ด ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ์ด ์๋ ๊ณ์ธต์ด๋ผ๊ณ ํ๋ค.
handshake๋ ์ฌ๋ฌ ๋ฒ์ ๋คํธ์ํฌ ์๋ณต์ ์๊ตฌํ๋๋ฐ,
๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ keep-alive connection์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ํ ๋ง์ด ์ค์ ๋ TCP ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ์ฌ ๋ก๋ฉ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ์ ์งํ๋ ค๊ณ ํ๋ค.
4-1. ๋ง์ฝ ํ๋กํ ์ฝ์ด HTTPS ๋ผ๋ฉด? -> SSL/TLS
ํ๋กํ ์ฝ์ด HTTPS ๋ผ๋ฉด ์ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ณผ์ ์ด ๋์ฑ ๋ณต์กํด์ง๋ค.
HTTP/2๋ HTTPS ์์์ ๋์ํ๋ค. HTTPS๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต๊ณผ ์ ์ก ๊ณ์ธต ์ฌ์ด์
์ ๋ขฐ ๊ณ์ธต์ธ SSL/TLS ๊ณ์ธต์ ๋ฃ์ ์ ๋ขฐํ ์ ์๋ HTTP ์์ฒญ์ ๋งํ๋ค.
์ด๋ฅผ ํตํด 'ํต์ ์ ์ํธํ'ํ๋ค.
SSL(Secure Socket Layer) , TLS(Transprot Layer Security Protocol)
SSL/TLS์ ์ ์ก ๊ณ์ธต์์ ๋ณด์์ ์ ๊ณตํ๋ ํ๋กํ ์ฝ์ด๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ ๋ SSL/TLS๋ฅผ ํตํด ์ 3์๊ฐ ๋ฉ์์ง๋ฅผ ๋์ฒญํ๊ฑฐ๋ ๋ณ์กฐํ์ง ๋ชปํ๋๋ก ํ๋ค.
ํ๋กํ ์ฝ์ด HTTPS๋ผ๋ฉด SSL/TLS ํธ๋์์ดํฌ ๊ณผ์ ์ด ํ์ํ๋ค.
์ด ํธ๋ ์์ดํฌ ๊ณผ์ ์ ๋น์ฉ์ด ๋ง์ด ๋ค์ด, ๋ธ๋ผ์ฐ์ ๋ SSL ์ธ์ ์ฌ๊ฐ (SSL session resumption)์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๋น์ฉ์ ์ค์ด๋ ค ํ๋ค.
4-2. ์๋ฒ์ ๋ฆฌ๋ค์ด๋ ํธ ์๋ต ์ฒ๋ฆฌ (ํ์ ์)
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ, ํน์ ์ํฉ์ ๋ฐ๋ผ HTTP ์ํ ์ฝ๋ 3xx์ ํจ๊ป ๋ฆฌ๋ค์ด๋ ํธ ์๋ต์ ๋ณด๋ผ ์ ์๋ค.
์๋ฅผ ๋ค์ด 301 Moved Permanently, ๋๋ 302 Found์ ํจ๊ป ์ URL์ด Location ํค๋์ ํฌํจ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ด ๋ฆฌ๋ค์ด๋ ํธ ์๋ต์ ๋ฐ์ผ๋ฉด Location ํค๋์ ๋ช ์๋ ์ URL๋ก ์๋์ผ๋ก ๋ค์ ์์ฒญ์ ๋ณด๋ธ๋ค.
๋ํ์ ์ธ ์ํฉ์ผ๋ก๋, HTTP์์ HTTPS๋ก ๊ฐ์ ์ด๋, URL ๋ณ๊ฒฝ, ์ธ์ฆ์ด ํ์ํ ํ์ด์ง์ผ ์ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋์ํค๋ ์ํฉ์ด ์๋ค.
5. WAS (Web Application Server) ์ ์ญํ
์น ์๋ฒ ํผ์์ ๋ชจ๋ ๋ก์ง ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํ๋ฉด ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ์ผ์ด๋ ์ ์์ผ๋ฏ๋ก, WAS๊ฐ ์ด๋ฅผ ๋ถ๋ดํ์ฌ ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
WAS๋ ๋ฏธ๋ค์จ์ด๋ก์ ์น ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์์ ๋์ ์ฝํ ์ธ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
์น ์๋ฒ๋ ์ ์ ์ธ ์ฝํ ์ธ (html, css, ์ด๋ฏธ์ง ๋ฑ)๋ฅผ ์ง์ ์ ๊ณตํ์ง๋ง, ๋์ ์ฝํ ์ธ ๊ฐ ํ์ํ ๋๋ WAS์๊ฒ ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ๋ค.
6. HTTP ์๋ต๊ณผ ์ํ ์ฝ๋
WAS์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์น ์๋ฒ์ ์ ๋ฌ๋๋ฉด,
์น ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ์๊ฒ ์ต์ข HTML ๋ฌธ์์ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค.
์ด๋ HTTP ์๋ต์๋ status code๊ฐ ํฌํจ๋์ด ์๋ฒ ์์ฒญ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ๋ฐ ์ํ๋ฅผ ์ ๋ฌํ๋ค.
์ข ์ข ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค ๋ฐ ์ด๋ฏธ์ง์ ๊ฐ์ด ๋ก๋ํ ์ถ๊ฐ ๋ฆฌ์์ค๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋ธ๋ผ์ฐ์ ๋ ์์ ์ธ๊ธํ DNS ์กฐํ, TCP ์ฐ๊ฒฐ ์ค์ , HTTP ์์ฒญ ๊ณผ์ ์ ๋ค์ ์ํํ์ฌ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
7. ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์์ ๋ฐ์ HTML ๋ฌธ์๋ฅผ ๋ ๋๋งํ๋ฉฐ, CSS ๋ฐ JavaScript ํ์ผ ๋ฑ์ ์ถ๊ฐ๋ก ๋ถ๋ฌ์ ์น ํ์ด์ง๋ฅผ ์์ฑํ๋ค.
์์ธํ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ฐ๋ก ์ ๋ฆฌํ ์์ ์ด๋ค.
ref
https://www.youtube.com/watch?v=AlkDbnbv7dk
https://www.youtube.com/watch?v=YahjHM9UNCA
https://velog.io/@tnehd1998/%EC%A3%BC%EC%86%8C%EC%B0%BD%EC%97%90-www.google.com%EC%9D%84-%EC%9E%85%EB%A0%A5%ED%96%88%EC%9D%84-%EB%95%8C-%EC%9D%BC%EC%96%B4%EB%82%98%EB%8A%94-%EA%B3%BC%EC%A0%95#1-wwwgooglecom-%EC%9E%85%EB%A0%A5%ED%95%98%EB%A9%B4-%EC%9E%85%EB%A0%A5%ED%95%9C-url-%EC%A3%BC%EC%86%8C-%EC%A4%91-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%9D%B4%EB%A6%84%EC%97%90-%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94-googlecom%EB%A5%BC-dns-%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C-%EA%B2%80%EC%83%89%EC%9D%84-%ED%95%A9%EB%8B%88%EB%8B%A4
๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ - ๋คํธ์ํฌ ํํธ