๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CS

๋ธŒ๋ผ์šฐ์ €์— www.naver.com์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

๋ฐ˜์‘ํ˜•

 

 

๐ŸŒ ๋ธŒ๋ผ์šฐ์ €์— www.naver.com์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”? 

์ง€๊ธ‹์ง€๊ธ‹ํ•œ ๋ฉด์ ‘ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜. ๋ธŒ๋ผ์šฐ์ €์— ~๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ์š”!!!!!!!!!!
์ €๋งŒ ๊ณจ์น˜์•„ํ”ˆ๊ฐ€์š” ๐Ÿฅฒ

์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๋งค์ผ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €.
๊ทธ ์ฃผ์†Œ์ฐฝ์— www.naver.com์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€, ๋‚ด๋ถ€ ๋™์ž‘์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
๊ฒ‰์œผ๋กœ ๋ณด๊ธฐ์—” ๋‹จ์ˆœํ•œ ๋™์ž‘์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์—์„œ๋Š” ๊ฝค๋‚˜ ๋งŽ์€ ์ผ๋“ค์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ์–ด์š”. 
์ด ๊ณจ์น˜์•„ํ”ˆ ๋†ˆ์„ ์ด์ œ ํ•ด๊ฒฐํ•ด๋ด…์‹œ๋‹ค.

 


๋ธŒ๋ผ์šฐ์ €์— www.naver.com์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฒŒ์–ด์ง€๋Š” ์ผ

1๏ธโƒฃ URL ํŒŒ์‹ฑ

๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฃผ์†Œ๋ฅผ URL ํŒŒ์‹ฑ์œผ๋กœ ๋ถ„์„ํ•ด ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ, ๊ฒฝ๋กœ ๋“ฑ์„ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด https://www.naver.com์˜ ๊ฒฝ์šฐ:

  • ํ”„๋กœํ† ์ฝœ: https
  • ํ˜ธ์ŠคํŠธ: www.naver.com
  • ๊ฒฝ๋กœ: / (์ƒ๋žต๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ)

 

2๏ธโƒฃ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ํ™•์ธ

๋ธŒ๋ผ์šฐ์ €๋Š” DNS ์บ์‹œ, HTTP ์บ์‹œ ๋“ฑ ๊ธฐ์กด์— ์ €์žฅ๋œ ์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์ด์ „ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ด ์žˆ๋‹ค๋ฉด, ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์—†์ด ์žฌ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์–ด์š”.

 

3๏ธโƒฃ DNS ์กฐํšŒ

www.naver.com์ด๋ผ๋Š” ๋„๋ฉ”์ธ์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด DNS ์„œ๋ฒ„๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
์ด๋•Œ OS → ๋กœ์ปฌ DNS ์บ์‹œ → ISP DNS ์„œ๋ฒ„ ์ˆœ์„œ๋กœ ํ™•์ธํ•˜๋ฉฐ,
๊ฒฐ๊ณผ์ ์œผ๋กœ ์˜ˆ: 223.130.195.200 ๊ฐ™์€ IP๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

 

4๏ธโƒฃ TCP ์—ฐ๊ฒฐ (3-way ํ•ธ๋“œ์…ฐ์ดํฌ)

IP๋ฅผ ์•Œ์•„๋‚ธ ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ์„œ๋ฒ„์™€ TCP ์—ฐ๊ฒฐ์„ ๋งบ์Šต๋‹ˆ๋‹ค.

  • [SYN] → [SYN-ACK] ← [ACK] ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” 3-way ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์ด๋ฃจ์–ด์ ธ์š”.

 

5๏ธโƒฃ TLS ํ•ธ๋“œ์…ฐ์ดํฌ (HTTPS์ธ ๊ฒฝ์šฐ)

๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด TLS ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์—์„œ ์ธ์ฆ์„œ ๊ฒ€์ฆ, ๋Œ€์นญํ‚ค ๊ตํ™˜ ๋“ฑ์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์ด ์ค€๋น„๋ฉ๋‹ˆ๋‹ค.

 

6๏ธโƒฃ HTTP ์š”์ฒญ ์ „์†ก

์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋˜๋ฉด TCP ์œ„์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ HTTP ์š”์ฒญ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
์š”์ฒญ์—๋Š” ์ฟ ํ‚ค, ํ† ํฐ, ๋ธŒ๋ผ์šฐ์ € ์ •๋ณด ๋“ฑ์ด ํ•จ๊ป˜ ํฌํ•จ๋  ์ˆ˜ ์žˆ์–ด์š”.

GET / HTTP/1.1  
Host: www.naver.com  
User-Agent: ...

 

7๏ธโƒฃ ์„œ๋ฒ„ ์‘๋‹ต

์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ๋’ค, HTML ๋ฌธ์„œ์™€ ํ•จ๊ป˜ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 
HTTP/1.1 200 OK  
Content-Type: text/html

์ด ์™ธ์—๋„ ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ํŒŒ์‹ฑํ•˜๋ฉฐ JS, CSS, ์ด๋ฏธ์ง€ ๋“ฑ ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

 

8๏ธโƒฃ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰

๋„์ฐฉํ•œ HTML์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  1. HTML์„ HTML ํŒŒ์‹ฑํ•˜์—ฌ DOM Tree ์ƒ์„ฑ (ํ•„์š”์‹œ JS๋ฅผ ์‹คํ–‰ํ•˜์—ฌ DOM์„ ์กฐ์ž‘ํ•จ)
  2. CSS๋ฅผ CSS ํŒŒ์‹ฑํ•˜์—ฌ CSSOM Tree ์ƒ์„ฑ
  3. DOM Tree์™€ CSSOM Tree๋ฅผ ํ•ฉ์ณ์„œ Render Tree ์ƒ์„ฑ
  4. ๋ ˆ์ด์•„์›ƒ์„ ๊ณ„์‚ฐํ•˜์—ฌ Render Tree ์ƒ์„ฑ
  5. Painting -> ํ™”๋ฉด ์ถœ๋ ฅ

 

9๏ธโƒฃ ์›น ํŽ˜์ด์ง€ ํ‘œ์‹œ

์ด์ œ ์‚ฌ์šฉ์ž๋Š” ๋„ค์ด๋ฒ„์˜ ํ™ˆ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ถ”๊ฐ€์ ์ธ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ(ํด๋ฆญ, ์ž…๋ ฅ ๋“ฑ)์— ๋”ฐ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์ž‘ํ•˜๋ฉฐ ๋™์ ์ธ ํŽ˜์ด์ง€๊ฐ€ ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

 

์š”์•ฝ

  1. URL ํŒŒ์‹ฑ
  2. ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ํ™•์ธ
  3. DNS ์กฐํšŒ
  4. TCP 3-way-handshake ์—ฐ๊ฒฐ
  5. TLS ํ•ธ๋“œ์…ฐ์ดํฌ (https์ธ ๊ฒฝ์šฐ)
  6. HTTP ์š”์ฒญ ์ „์†ก
  7. ์„œ๋ฒ„ ์‘๋‹ต
  8. ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰
  9. ์›น ํŽ˜์ด์ง€ ํ‘œ์‹œ

 

 


โœจ ๋งˆ๋ฌด๋ฆฌ

์ด์ฒ˜๋Ÿผ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋™์ž‘ ํ•˜๋‚˜์—๋„
๋ธŒ๋ผ์šฐ์ €์™€ ๋„คํŠธ์›Œํฌ, ์„œ๋ฒ„, ๋ Œ๋”๋ง ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์ด ๋ณตํ•ฉ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์–ด์š”.
์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜๋ฉด, ๊ฐœ๋ฐœ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•