๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ComputerScience ๐Ÿ“š/์ปดํ“จํ„ฐ๋„คํŠธ์›Œํฌ

[๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(4) - ์›น๊ณผ HTTP(๋น„์ง€์†, ์ง€์† ์—ฐ๊ฒฐ)

by dkswnkk 2022. 4. 29.

 

์„œ๋ก 

 

[๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(3) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด์šฉ ๊ฐ€๋Šฅํ•œ ํŠธ๋žœ์ŠคํฌํŠธ ์„œ๋น„์Šค(TCP, UDP)

์„œ๋ก  [๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(2) - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ (์†Œ์ผ“) ์„œ๋ก  ๋Œ€๋ถ€๋ถ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋กœ์—๊ฒŒ ๋ณด๋‚ด๋Š” ํ†ต์‹  ํ”„๋กœ์„ธ์Šค ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋กœ

dkswnkk.tistory.com

์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ UDP์™€ TCP์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด๊ณ , ์ด๋“ค์ด ์ œ๊ณตํ•˜๋Š” ์‹ ๋ขฐ์  ๋ฐ์ดํ„ฐ ์ „์†ก, ์ฒ˜๋ฆฌ์œจ, ์‹œ๊ฐ„, ๊ทธ๋ฆฌ๊ณ  ๋ณด์•ˆ์ด๋ผ๋Š” ๋„ค ๊ฐ€์ง€ ์ฐจ์›์˜ ๋ถ„๋ฅ˜์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. 

์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์›น๊ณผ HTTP์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , HTTP์˜ ๋น„์ง€์† ์—ฐ๊ฒฐ๊ณผ ์ง€์† ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ
1. HTTP ๊ฐœ์š”
2. ๋น„์ง€์† ์—ฐ๊ฒฐ๊ณผ ์ง€์† ์—ฐ๊ฒฐ

 

HTTP ๊ฐœ์š”

์›น์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ธ HTTP(HyperText Transfer Protocol)๋Š” ์›น์˜ ์ค‘์‹ฌ์ž…๋‹ˆ๋‹ค. HTTP๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ ๋‘ ๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋‹จ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ์„œ๋กœ HTTP ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•˜์—ฌ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. HTTP๋Š” ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ ๋ฐ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตํ™˜ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •์˜ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, HTTP๋ฅผ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์›น ์ „๋ฌธ ์šฉ์–ด๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์›น ํŽ˜์ด์ง€(web page, ๋ฌธ์„œ๋ผ๊ณ ๋„ ํ•œ๋‹ค)๋Š” ๊ฐ์ฒด๋“ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  2. ๊ฐ์ฒด(object)๋Š” ๋‹จ์ˆœํžˆ URL๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ(HTML ํŒŒ์ผ, JPEG ์ด๋ฏธ์ง€, GIF ์ด๋ฏธ์ง€, ์ž๋ฐ” ์• ํ”Œ๋ฆฟ, ์˜ค๋””์˜ค ํด๋ฆฝ)๋“ฑ ์ž…๋‹ˆ๋‹ค.
  3. ๋Œ€๋ถ€๋ถ„์˜ ์›น ํŽ˜์ด์ง€๋Š” ๊ธฐ๋ณธ HTML ํŒŒ์ผ๊ณผ ์—ฌ๋Ÿฌ ์ฐธ์กฐ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  4. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ํŽ˜์ด์ง€๊ฐ€ HTML ํ…์ŠคํŠธ์™€ 5๊ฐœ์˜ JPEG ์ด๋ฏธ์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด, ์ด ์›น ํŽ˜์ด์ง€๋Š” 6๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ธฐ๋ณธ HTML ํŒŒ์ผ๊ณผ 5๊ฐœ์˜ ์ด๋ฏธ์ง€).
  5. ๊ธฐ๋ณธ HTML ํŒŒ์ผ์€ ํŽ˜์ด์ง€ ๋‚ด๋ถ€์˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ทธ ๊ฐ์ฒด์˜ URL๋กœ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ฐ URL์€ 2๊ฐœ์˜ ์š”์†Œ, ์ฆ‰ ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ๋„ค์ž„๊ณผ ๊ฐ์ฒด์˜ ๊ฒฝ๋กœ ์ด๋ฆ„์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ URL์„ ์˜ˆ๋กœ ํ•œ๋ฒˆ ์‚ดํŽด๋ด…์‹œ๋‹ค. 

http://www.naver.com/test/picture.gif

www.naver.com์€ ํ˜ธ์ŠคํŠธ ๋„ค์ž„์ด๊ณ , /test/picture.gif๋Š” ๊ฒฝ๋กœ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”๊ตฌํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ ์ฃผ๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ธํ„ฐ๋„ท ๊ตฌ์„ฑ ํŠน์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. HTTP์˜ ์„œ๋ฒ„ ์ธก์„ ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋ฒ„(Web server)๋Š” URL๋กœ ๊ฐ๊ฐ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ๊ฐ์ฒด๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

HTTP๋Š” ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์š”์ฒญํ•˜๋Š”์ง€์™€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ์–ด๋–ป๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ์ „์†กํ•˜๋Š”์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. (์•„๋ž˜ ์ด๋ฏธ์ง€)

HTTP์˜ ์š”์ฒญ-์‘๋‹ต ๊ด€๊ณ„

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

  1. HTTP๋Š” TCP๋ฅผ ์ „์†ก ํ”„๋กœํ† ์ฝœ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 
  2. HTTP ํด๋ผ์ด์–ธํŠธ๋Š” ๋จผ์ € ์„œ๋ฒ„์— TCP ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ผ๋‹จ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋ฉด, ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋Š” ๊ทธ๋“ค์˜ ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด TCP๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๋Š” HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณด๋‚ด๊ณ  ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  5. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ HTTP ์„œ๋ฒ„๋Š” ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ผ๋‹จ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ์ผ“ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณด๋‚ด๋ฉด ๋ฉ”์‹œ์ง€๋Š” TCP๊ฐ€ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ TCP์˜ ์‹ ๋ขฐ์  ์ „์†ก์„ ๋– ์˜ฌ๋ฆฌ์ž). ์ด๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ๋ชจ๋“  HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ถ๊ทน์ ์œผ๋กœ ์„œ๋ฒ„์— ์ž˜ ๋„์ฐฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒ์‹œํ‚จ ๊ฐ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋„ ํด๋ผ์ด์–ธํŠธ์— ์ž˜ ๋„์ฐฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ณ„์ธต๊ตฌ์กฐ์˜ ์ค‘์š”ํ•œ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • HTTP๋Š” ๋ฐ์ดํ„ฐ์˜ ์†์‹ค ๋˜๋Š” TCP๊ฐ€ ์–ด๋–ป๊ฒŒ ์†์‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ๋ฐฐ์—ดํ•˜๋Š”์ง€ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ด์œ ๋Š” TCP์™€ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ํ•˜์œ„ ๊ณ„์ธต๋“ค์ด ํ•˜๋Š” ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ ํŒŒ์ผ์„ ๋ณด๋‚ผ ๋•Œ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ๊ด€ํ•œ ๊ทธ ์–ด๋– ํ•œ ์ƒํƒœ ์ •๋ณด๋„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์— ๋งค์šฐ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ช‡ ์ดˆ ํ›„์— ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๋‘ ๋ฒˆ ์š”์ฒญํ•œ๋‹ค๋ฉด, ์„œ๋ฒ„๋Š” ์ด์ „์— ํ•œ ์ผ์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ทธ ๊ฐ์ฒด๋ฅผ ๋˜ ๋ณด๋ƒ…๋‹ˆ๋‹ค. HTTP ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ HTTP๋ฅผ ๋น„ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ(stateless protocol)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๋น„์ง€์† ์—ฐ๊ฒฐ๊ณผ ์ง€์† ์—ฐ๊ฒฐ

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

ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์ƒํ˜ธ์ž‘์šฉ์ด TCP์ƒ์—์„œ ๋ฐœ์ƒํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ๋‘ ๊ฐ€์ง€์˜ ์ค‘์š”ํ•œ ๊ฒฐ์ •์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋น„์ง€์† ์—ฐ๊ฒฐ(non-persistent connection): ๊ฐ ์š”๊ตฌ/์‘๋‹ต ์Œ์ด ๋ถ„๋ฆฌ๋œ TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณด๋‚ด์ ธ์•ผ ํ•˜๋Š”๊ฐ€?
  2. ์ง€์† ์—ฐ๊ฒฐ(persistent connectioon): ๋ชจ๋“  ์š”๊ตฌ์™€ ํ•ด๋‹นํ•˜๋Š” ์‘๋‹ต๋“ค์ด ๊ฐ™์€ TCP ์—ฐ๊ฒฐ์ƒ์œผ๋กœ ๋ณด๋‚ด์ ธ์•ผ ํ•˜๋Š”๊ฐ€?

๋น„๋ก HTTP๊ฐ€ ๋””ํดํŠธ ๋ชจ๋“œ๋กœ ์ง€์† ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ HTTP ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๋น„์ง€์† ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋น„์ง€์† ์—ฐ๊ฒฐ HTTP

์›น ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†กํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ํ•œ๋ฒˆ ์‚ดํŽด๋ด…์‹œ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ๊ธฐ๋ณธ HTML ํŒŒ์ผ๊ณผ 10๊ฐœ์˜ JPEG ์ด๋ฏธ์ง€๋กœ ๊ตฌ์„ฑ๋˜๊ณ , ์ด 11๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€ ์„œ๋ฒ„์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ๊ธฐ๋ณธ HTML ํŒŒ์ผ์˜ URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

http://www.someschool.edu/someDepartment/home.index

์—ฐ๊ฒฐ ์ˆ˜ํ–‰ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. HTTP ํด๋ผ์ด์–ธํŠธ๋Š” HTTP์˜ ๊ธฐ๋ณธ ํฌํŠธ ๋ฒˆํ˜ธ 80์„ ํ†ตํ•ด www.someschool.edu  ์„œ๋ฒ„๋กœ TCP ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ๋‹ค. TCP ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์— ๊ฐ๊ฐ ์†Œ์ผ“์ด ์žˆ๊ฒŒ ๋œ๋‹ค.
  2. HTTP ํด๋ผ์ด์–ธํŠธ๋Š” 1๋‹จ๊ณ„์—์„œ ์„ค์ •๋œ TCP ์—ฐ๊ฒฐ ์†Œ์ผ“์„ ํ†ตํ•ด ์„œ๋ฒ„๋กœ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ด ์š”์ฒญ ๋ฉ”์‹œ์ง€๋Š” /someDepartment/home.index ๊ฒฝ๋กœ ์ด๋ฆ„์„ ํฌํ•จํ•œ๋‹ค.
  3. HTTP ์„œ๋ฒ„๋Š” 1๋‹จ๊ณ„์—์„œ ์„ค์ •๋œ ์—ฐ๊ฒฐ ์†Œ์ผ“์„ ํ†ตํ•˜์—ฌ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค. ์ €์žฅ์žฅ์น˜๋กœ๋ถ€ํ„ฐ /someDepartment/home.index ๊ฐ์ฒด๋ฅผ ์ถ”์ถœํ•œ๋‹ค. HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€์— ๊ทธ ๊ฐ์ฒด๋ฅผ ์บก์Šํ™”ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ์ผ“์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ธ๋‹ค.
  4. HTTP ์„œ๋ฒ„๋Š” TCP์—๊ฒŒ ์—ฐ๊ฒฐ์„ ๋Š์œผ๋ผ๊ณ  ํ•œ๋‹ค.(๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ TCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์˜ฌ๋ฐ”๋กœ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š๋Š”๋‹ค.)
  5. HTTP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด, TCP ์—ฐ๊ฒฐ์ด ์ค‘๋‹จ๋œ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ์บก์Šํ™”๋œ ๊ฐ์ฒด๊ฐ€ HTML ํŒŒ์ผ์ธ ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๊ณ  HTML ํŒŒ์ผ์„ ์กฐ์‚ฌํ•˜๊ณ  10๊ฐœ์˜ JPEG ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
  6. ๊ทธ ์ดํ›„์— ์ฐธ์กฐ๋˜๋Š” ๊ฐ JPEG ๊ฐ์ฒด์— ๋Œ€ํ•˜์—ฌ ์ฒ˜์Œ ๋„ค ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

์•ž ๋‹จ๊ณ„์—์„œ ์„œ๋ฒ„๋Š” ๊ฐ์ฒด๋ฅผ ๋ณด๋‚ธ ํ›„์— ๊ฐ TCP ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฏ€๋กœ ๋น„์ง€์† ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์—ฐ๊ฒฐ์ด ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์œ„ํ•ด ์œ ์ง€๋˜์ง€ ์•Š์Œ). ๊ฐ TCP ์—ฐ๊ฒฐ์€ ํ•˜๋‚˜์˜ ์š”์ฒญ ๋ฉ”์‹œ์ง€์™€ ํ•˜๋‚˜์˜ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋งŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์˜ˆ์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ 11๊ฐœ์˜ TCP ์—ฐ๊ฒฐ์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ธฐ๋ณธ HTML ํŒŒ์ผ์„ ์š”์ฒญํ•˜๊ณ  ๊ทธ ํŒŒ์ผ์ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ˆ˜์‹ ๋  ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์ธก์ •ํ•ด ๋ด…์‹œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ์ž‘์€ ํŒจํ‚ท์ด ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์„œ๋ฒ„๊นŒ์ง€ ๊ฐ€๊ณ , ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋˜๋Œ์•„์˜ค๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด RTT(round trip time)์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

RTT๋Š” ํŒจํ‚ท ์ „ํŒŒ ์ง€์—ฐ, ์ค‘๊ฐ„ ๋ผ์šฐํ„ฐ์™€ ์Šค์œ„์น˜์—์„œ์˜ ํŒจํ‚ท ํ์ž‰ ์ง€์—ฐ, ํŒจํ‚ท ์ฒ˜๋ฆฌ ์ง€์—ฐ ๋“ฑ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. (ํ•ด๋‹น ๊ด€๋ จ ์ง€์‹์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€์—์„œ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.)

 

[๋„คํŠธ์›Œํฌ] ํŒจํ‚ท ๊ตํ™˜ ์ง€์—ฐ- ์ฒ˜๋ฆฌ(proc), ํ์ž‰(queue), ์ „์†ก(trans), ์ „ํŒŒ(prop)

์„œ๋ก  [๋„คํŠธ์›Œํฌ] ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐฉ์‹ - ํŒจํ‚ท ๊ตํ™˜ ์„œ๋ก  ๋„คํŠธ์›Œํฌ ์‘์šฉ์—์„œ ์ข…๋‹จ ์‹œ์Šคํ…œ๋“ค์€ ์„œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์—๋Š” JPEG ์ด๋ฏธ์ง€ ํ˜น์€ MP3 ์˜ค๋””์˜ค ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š”๋ฐ ์†ก

dkswnkk.tistory.com

์ด์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜์ดํผ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค.

HTML ํŒŒ์ผ์„ ์š”์ฒญํ•˜๊ณ  ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๊ณ„์‚ฐ

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์ด ํด๋ฆญ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ TCP ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” "3-Way Handshake"๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž‘์€ TCP ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ์ž‘์€ ๋ฉ”์‹œ์ง€๋กœ ์‘๋‹ตํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ ์„œ๋ฒ„์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
  2. 3-Way Handshake ์ค‘ ์ฒ˜์Œ ๋‘ ๋ถ€๋ถ„์ด ๊ฒฝ๊ณผํ•˜๋ฉด ํ•œ RTT๊ฐ€ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  3. ํ•ธ๋“œ ์…ฐ์ดํฌ์˜ ์ฒ˜์Œ ๋‘ ๊ณผ์ •์ด ๋๋‚œ ํ›„์— ํด๋ผ์ด์–ธํŠธ๋Š” HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ TCP ์—ฐ๊ฒฐ๋กœ ๋ณด๋‚ด๋ฉด์„œ ํ•ธ๋“œ์…ฐ์ดํฌ์˜ ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„(์‘๋‹ต)์„ ํ•จ๊ป˜ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  4. ์ผ๋‹จ ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ์„œ๋ฒ„์— ๋„์ฐฉํ•˜๋ฉด ์„œ๋ฒ„๋Š” HTML ํŒŒ์ผ์„ TCP ์—ฐ๊ฒฐ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  5. ์ด HTTP ์š”์ฒญ/์‘๋‹ต์€ ๋˜ ํ•˜๋‚˜์˜ RTT๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋Œ€๋žต ์ด ์‘๋‹ต ์‹œ๊ฐ„์€ 2 RTT์™€ HTML ํŒŒ์ผ์„ ์„œ๋ฒ„๊ฐ€ ์ „์†กํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ง€์† ์—ฐ๊ฒฐ HTTP

๋น„์ง€์† ์—ฐ๊ฒฐ์€ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ์งธ, ๊ฐ ์š”์ฒญ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๊ณ  ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • TCP ๋ฒ„ํผ๊ฐ€ ํ• ๋‹น๋˜์–ด์•ผ ํ•˜๊ณ  TCP ๋ณ€์ˆ˜๋“ค์ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์–‘์ชฝ์— ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Š” ์ˆ˜๋งŽ์€ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋™์‹œ์— ์„œ๋น„์Šคํ•˜๋Š” ์›น ์„œ๋ฒ„์—๊ฒŒ ์‹ฌ๊ฐํ•œ ๋ถ€๋‹ด์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ๊ฐ ๊ฐ์ฒด๋Š” 2 RTT๋ฅผ ํ•„์š”๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • TCP ์—ฐ๊ฒฐ ์„ค์ •์— 1 RTT
  • ๊ฐ์ฒด๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ฐ›๋Š”๋ฐ 1 RTT

HTTP1.1 ์ง€์† ์—ฐ๊ฒฐ์—์„œ ์„œ๋ฒ„๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„์— TCP ์—ฐ๊ฒฐ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์ดํ›„ ์š”์ฒญ๊ณผ ์‘๋‹ต์€ ๊ฐ™์€ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.
  • ํŠนํžˆ, ์ „์ฒด ์›น ํŽ˜์ด์ง€(์•ž ์˜ˆ์—์„œ ๊ธฐ๋ณธ HTML ํŒŒ์ผ๊ณผ 10๊ฐœ ์ด๋ฏธ์ง€)๋ฅผ ํ•˜๋‚˜์˜ ์ง€์† TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ๊ฐ™์€ ์„œ๋ฒ„์— ์žˆ๋Š” ์—ฌ๋Ÿฌ ์›น ํŽ˜์ด์ง€๋“ค์„ ํ•˜๋‚˜์˜ ์ง€์† TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋“ค  ๊ฐ์ฒด์— ๋Œ€ํ•œ ์š”๊ตฌ๋Š” ์ง„ํ–‰ ์ค‘์ธ ์š”๊ตฌ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์—ฐ์†ํ•ด์„œ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(ํŒŒ์ดํ”„๋ผ์ด๋‹)

์ผ๋ฐ˜์ ์œผ๋กœ HTTP ์„œ๋ฒ„๋Š” ์ผ์ • ๊ธฐ๊ฐ„(ํƒ€์ž„์•„์›ƒ ๊ธฐ๊ฐ„) ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์—ฐ๊ฒฐ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์—ฐ์†๋œ ์š”๊ตฌ๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ, ์„œ๋ฒ„๋Š” ๊ฐ์ฒด๋ฅผ ์—ฐ์†ํ•ด์„œ ๋ณด๋ƒ…๋‹ˆ๋‹ค. HTTP์˜ ๋””ํดํŠธ ๋ชจ๋“œ๋Š” ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์ด์šฉํ•œ ์ง€์† ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ์—, HTTP/2์™€ ๊ฐ™์€ ์—ฐ๊ฒฐ์ƒ์—์„œ ๋‹ค์ค‘ ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(reply)์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ด ์—ฐ๊ฒฐ ๋‚ด์—์„œ HTTP ๋ฉ”์‹œ์ง€ ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฒ•์ด ๊ฐ€๋Šฅํ•˜๋„๋ก HTTP1.1์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์Œ๊ธ€

 

[๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(5) - ์ฟ ํ‚ค์™€ ์›น ์บ์‹ฑ

์„œ๋ก  [๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(4) - ์›น๊ณผ HTTP(๋น„์ง€์†, ์ง€์† ์—ฐ๊ฒฐ) ์„œ๋ก  [๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(3) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด์šฉ ๊ฐ€๋Šฅํ•œ ํŠธ๋žœ์ŠคํฌํŠธ ์„œ๋น„์Šค(TCP, UDP) ์„œ๋ก  [๋„คํŠธ์›Œํฌ] ์• ํ”Œ๋ฆฌ์ผ€์ด

dkswnkk.tistory.com

๋Œ“๊ธ€