๐Ÿค– Computer Science

What happens when you type a URL into your browser?

yesolz 2024. 11. 14. 02:04
728x90

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 ์ „๊ณต์ง€์‹ ๋…ธํŠธ - ๋„คํŠธ์›Œํฌ ํŒŒํŠธ

 

 

 

728x90