4. Connection Management

[ํ•™์Šต๋ชฉํ‘œ]

  • HTTP๋Š” ์–ด๋–ป๊ฒŒ TCP ์ปค๋„ฅ์…˜์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€

  • HTTP ์ปค๋„ฅ์…˜์ด ๋ฌด์—‡์ด๊ณ , ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ดํ•ดํ•œ๋‹ค.

  • TCP์ปค๋„ฅ์…˜์˜ ์ง€์—ฐ, ๋ณ‘๋ชฉ, ๋ง‰ํž˜ํ˜„์ƒ

  • ๋ณ‘๋ ฌ์ปค๋„ฅ์…˜, keep-alive์ปค๋„ฅ์…˜, ์ปค๋„ฅ์…˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ™œ์šฉํ•œ HTTP ์ตœ์ ํ™”

  • ์ปค๋„ฅ์…˜๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ทœ์น™

1) TCP ์ปค๋„ฅ์…˜

HTTP ํ†ต์‹ ์€ TCP/IP ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

TCP/IP : ์ง€๊ตฌ์ƒ์˜ ์ปดํ“จํ„ฐ์™€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์—์„œ ๋„๋ฆฌ ์“ฐ์ด๋Š” ํŒจํ‚ท ๊ตํ™˜ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ๋“ค์˜ ๊ณ„์ธตํ™” ์ง‘ํ•ฉ.

์„ธ๊ณ„ ์–ด๋””์„œ๋“  TCP/IP ์ปค๋„ฅ์…˜์„ ๋งบ์„ ์ˆ˜ ์žˆ๋‹ค.

์ผ๋‹จ ์ปค๋„ฅ์…˜์ด ๋งบ์–ด์ง€๋ฉด, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๊ฐ„์— ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€๋“ค์€ ์†์‹ค๋˜๊ฑฐ๋‚˜, ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ์•ˆ์ „ํžˆ ์ „๋‹ฌ์ด ๋œ๋‹ค.

โ‘  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ํ†ต๋กœ TCP

  • ์ˆœ์„œ์— ๋งž๊ฒŒ, ์†์‹ค ์—†์ด, ์†์ƒ ์—†์ด, ์•ˆ์ •์ด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํ†ต์‹ 

โ‘กTCP ์ŠคํŠธ๋ฆผ์€ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋‰˜์–ด IP ํŒจํ‚ท์„ ํ†ตํ•ด ์ „์†ก

  • Segment: Transport ๊ณ„์ธต [์˜ˆ:TCP] - ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์—ฐ๊ฒฐ(port)

  • Packet: Network ๊ณ„์ธต [์˜ˆ: IP] - ํ•ด๋‹น์ปดํ“จํ„ฐ์™€ ์—ฐ๊ฒฐ(host or ip address)

โ‘ข TCP ์ปค๋„ฅ์…˜ ์œ ์ง€ํ•˜๊ธฐ

์ปดํ“จํ„ฐ๋Š” ํ•ญ์ƒ TCP ์ปค๋„ฅ์…˜์„ ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•œ๋‹ค.

TCP ์ปค๋„ฅ์…˜ ์‹๋ณ„์€ ๋„ค๊ฐ€์ง€ ๊ฐ’์œผ๋กœ ํ•œ๋‹ค.

<๋ฐœ์‹ ์ง€ IP ์ฃผ์†Œ, ๋ฐœ์‹ ์ง€ port๋ฒˆํ˜ธ, ์ˆ˜์‹ ์ง€ IP์ฃผ์†Œ, ์ˆ˜์‹ ์ง€ IP๋ฒˆํ˜ธ>

์œ„ ๋„ค๊ฐ€์ง€ ๊ฐ’์œผ๋กœ ์œ ์ผํ•œ ์ปค๋„ฅ์…˜์„ ์ƒ์„ฑํ•œ๋‹ค. [๋„ค๊ฐ€์ง€ ๊ฐ’์ด ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๊ณ , ๊ตฌ์„ฑ ์š”์†Œ์ค‘ ์ผ๋ถ€๋Š” ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค.]

โ‘ฃ TCP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์šด์˜์ฒด์ œ๋Š” TCP ์ปค๋„ฅ์…˜ ์ƒ์„ฑ๊ณผ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. [์†Œ์ผ“ API]

์ฒ˜์Œ์—๋Š” ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ.

(์†Œ์ผ“์ด๋ž€? ์ฐธ์กฐ): https://medium.com/@yeon22/term-socket์ด๋ž€-7ca7963617ff

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ TCP ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ƒํ˜ธ์ž‘์šฉ ํ”„๋กœ์„ธ์Šค

2) TCP ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๊ณ ๋ ค

HTTP๋Š” TCP ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” ๊ณ„์ธต์ด๊ธฐ ๋•Œ๋ฌธ์— TCP ์„ฑ๋Šฅ์€ HTTP ํŠธ๋žœ์žญ์…˜์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

โ‘  HTTP ํŠธ๋žœ์žญ์…˜ ์ง€์—ฐ

๋Œ€๋ถ€๋ถ„์˜ HTTP์ง€์—ฐ์€ TCP ๋„คํŠธ์›Œํฌ ์ง€์—ฐ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ๋‹ค. HTTP ํŠธ๋žœ์žญ์…˜ ์ง€์—ฐ ์›์ธ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ๋Š” URI์—์„œ ์›น ์„œ๋ฒ„์˜ IP์ฃผ์†Œ์™€ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„์•ผํ•˜๊ณ , ์ตœ๊ทผ์— ๋ฐฉ๋ฌธํ•œ์  ์—†๋Š” URI๋ผ๋ฉด, DNS๋กœ ํ˜ธ์ŠคํŠธ๋ช…์„ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์ˆ˜์‹ญ์ดˆ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

    [ํ˜„์žฌ๋Š” ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋ถ„์„์ด ๋๋‚œ๋‹ค. host google.com ์„ terminal ์— ์ž…๋ ฅํ•ด์„œ ํ™•์ธํ•ด๋ณผ๊ฒƒ]

  • ํด๋ผ์ด์–ธํŠธ๋Š” TCP ์ปค๋„ฅ์…˜ ์š”์ฒญ์„ ์„œ๋ฒ„์— ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๊ฐ€ ํ—ˆ๊ฐ€ ์‘๋‹ต์„ ํšŒ์‹ ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

    ์ƒˆ๋กœ์šด ์ปค๋„ฅ์…˜์— ํ•ญ์ƒ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ, ํ˜„์žฌ๋Š” 1์ดˆ ๋ฏธ๋งŒ์œผ๋กœ ๋๋‚œ๋‹ค.

  • ์š”์ฒญ๋ฉ”์„ธ์ง€๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๊ณ , ์„œ๋ฒ„์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š”๋ฐ๊นŒ์ง€ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„.

  • ๋ฐ˜๋Œ€๋กœ ์›น์„œ๋ฒ„๊ฐ€ HTTP์‘๋‹ต์„ ๋ณด๋‚ด๋Š”๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„.

โ‘ก ์ผ๋ฐ˜์ ์ธ TCP ๊ด€๋ จ ์ง€์—ฐ

  • TCP ์ปค๋„ฅ์…˜ ํ•ธ๋“œ์…ฐ์ดํฌ ์„ค์ •

  • ์ธํ„ฐ๋„ท ํ˜ผ์žก์„ ์ œ์–ดํ•˜๊ธฐ์œ„ํ•œ TCP์˜ ๋Š๋ฆฐ์‹œ์ž‘(slow-start)

  • ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฐ ๋ชจ์•„ ํ•œ๋ฒˆ์— ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋„ค์ด๊ธ€(nagle) ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • TCP์˜ ํŽธ์Šน(piggyback) ํ™•์ธ์‘๋‹ต(acknowledgement) ์„ ์œ„ํ•œ ํ™•์ธ์‘๋‹ต ์ง€์—ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • TIME_WAIT ์ง€์—ฐ๊ณผ ํฌํŠธ ๊ณ ๊ฐˆ

3) HTTP ์ปค๋„ฅ์…˜ ๊ด€๋ฆฌ

โ‘  Connection Header

  • ์ปค๋„ฅ์…˜ ํ—ค๋”๋Š” 3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ํ† ํฐ์„ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • HTTP ํ—ค๋” ํ•„๋“œ๋ช…์€ ์ด ์ปค๋„ฅ์…˜์—๋งŒ ํ•ด๋‹น๋˜๋Š” ํ—ค๋”๋“ค์„ ๋‚˜์—ดํ•œ๋‹ค.

    • ์ž„์‹œ์ ์ธ ํ† ํฐ๊ฐ’์€ ๋น„ํ‘œ์ค€ ์˜ต์…˜์„ ์˜๋ฏธํ•œ๋‹ค.

    • close ๊ฐ’์€ ์ปค๋„ฅ์…˜์ด ์ž‘์—… ์™„๋ฃŒ๋˜๋ฉด ์ข…๋ฃŒ๋˜์•ผํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

  • HTTP ํ—ค๋” ํ•„๋“œ๋ช…์€ ํ˜„์žฌ ์ปค๋„ฅ์…˜๋งŒ์„ ์œ„ํ•œ ์ •๋ณด์ด๋ฏ€๋กœ ๋‹ค์Œ ์ปค๋„ฅ์…˜์— ์ „๋‹ฌํ•˜๋ฉด ์•ˆ๋˜๊ณ , ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์‹œ์ ์— ์‚ญ์ œํ•ด์•ผํ•œ๋‹ค.

  • HTTP ๋‚ด ์ปค๋„ฅ์…˜ ๊ด€๋ฆฌ๋Š” end-to-end๊ฐ€ ์•„๋‹Œ hop-by-hop์ธ ๋‘๊ฐœ์˜ ์—ฐ์†๋œ ๋…ธ๋“œ ์‚ฌ์ด์˜ ์ปค๋„ฅ์…˜์— ์ ์šฉ

    (='ํ—ค๋” ๋ณดํ˜ธํ•˜๊ธฐ')

โ‘ก ์ˆœ์ฐจํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์— ์˜ํ•œ ์ง€์—ฐ

  • ์˜ˆ๋ฅผ๋“ค์–ด 3๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด๋ ค๋ฉด, ํ•ด๋‹น HTML ๊ณผ ์ด๋ฏธ์ง€ํŒŒ์ผ 3๊ฐœ๋ฅผ ๋ฐ›์•„์™€์•ผํ•˜๋Š”๋ฐ, ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š”๋™์•ˆ ๋นˆ ํ™”๋ฉด๋งŒ์„ ๋ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. HTTP ์ปค๋„ฅ์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์—ฌ๋Ÿฌ ์ตœ์‹ ๊ธฐ์ˆ  4๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ณธ๋‹ค.

    • ๋ณ‘๋ ฌ(Parallel) ์ปค๋„ฅ์…˜: ์—ฌ๋Ÿฌ๊ฐœ์˜ TCP ์ปค๋„ฅ์…˜์„ ํ†ตํ•œ HTTP ์š”์ฒญ

      • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปค๋„ฅ์…˜์„ ๋งบ์–ด ์—ฌ๋Ÿฌ๊ฐœ์˜ HTTP ํŠธ๋žœ์žญ์…˜์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌ

      • ๋ณ‘๋ ฌ์ปค๋„ฅ์…˜์€ ํŽ˜์ด์ง€๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋‚ด๋ ค๋ฐ›๋Š”๋‹ค.

      • ํ•ญ์ƒ ๋” ๋น ๋ฅธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ ์€์ˆ˜์˜ ๋ณ‘๋ ฌ์ปค๋„ฅ์…˜๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.(ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„ 6~8๊ฐœ ํ—ˆ์šฉ)

        [๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์ด ์ข์€๊ฒฝ์šฐ, ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ ๋ฐ์ดํ„ฐ ์ „์†ก์—๋งŒ ์“ฐ๊ฒŒ๋จ.]

        [๋‹ค์ˆ˜์˜ ์ปค๋„ฅ์…˜์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์†Œ๋ชจํ•ด์„œ ์„ฑ๋Šฅ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Œ.]

      • ๋” ๋น ๋ฅด๊ฒŒ '๋Š๊ปด์งˆ ์ˆ˜' ์žˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๋™์‹œ์— ๋ณด์ด๋ฉด์„œ ๋‚ด๋ ค๋ฐ›๋Š”๊ฑธ ๋ณด๊ธฐ๋•Œ๋ฌธ์— ์ž‘์—…์ด ์ผ์–ด๋‚˜๋Š” ์ค‘์ž„์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆˆ์œผ๋กœ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ด์„œ ๋” ๋น ๋ฅด๋‹ค๊ณ  ๋Š๋‚€๋‹ค.

    • ์ง€์†(Persistent) ์ปค๋„ฅ์…˜: ์ปค๋„ฅ์…˜์„ ๋งบ๊ณ  ๋Š๋Š”๋ฐ ๋ฐœ์ƒํ•˜๋Š” ์ง€์—ฐ ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ TCP ์ปค๋„ฅ์…˜ ์žฌํ™œ์šฉ

      • ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„์—๋„ TCP ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜์—ฌ ์•ž์œผ๋กœ ์žˆ์„ HTTP ์š”์ฒญ์— ์žฌ์‚ฌ์šฉํ•œ๋‹ค.

      • ๋ณ‘๋ ฌ ์ปค๋„ฅ์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ƒํ˜ธ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. (4.5.1 ์ฐธ์กฐ)

      • 2๊ฐ€์ง€ ํƒ€์ž…:

        • HTTP/1.0+ ์˜ keep-alive connection(4.5.2~4.5.7 ์ฐธ์กฐ)

          HTTP/1.1 ๋ช…์„ธ์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ, ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์—ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

          ์ปค๋„ฅ์…˜ ์œ ์ง€๋ฅผ ์œ„ํ•ด์„œ Connection: Keep-Alive ํ—ค๋”๋ฅผ ํฌํ•จํ•œ๋‹ค.

          ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ๋ชจ๋‘ ์–ธ์ œ๋“  keep-alive ์š”์ฒญ์„ ๋Š๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌ๋˜๋Š” ํŠธ๋žœ์ ์…˜ ์ˆ˜ ์ œํ•œ์ด ๊ฐ€๋Šฅ

          ํ”„๋ฝ์‹œ์—์„œ Connection ํ—ค๋”๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฌด์กฐ๊ฑด ์ „๋‹ฌํ•˜๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

          ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ Proxy-Connection ์„ ํ†ตํ•ด ๋‹จ์ผ ๋ฌด์กฐ๊ฑด ์ „๋‹ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.(์ฐจ์„ ์ฑ…)

          ํ•˜์ง€๋งŒ ํ”„๋ก์‹œ๊ฐ€ ๋งŽ์€ ๊ตฌ์กฐ์—์„œ๋Š” ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

        • HTTP/1.1 persistent connection

          keep-alive๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์„ค๊ณ„๊ฐ€ ๋” ๊ฐœ์„ ๋œ ์ง€์† ์ปค๋„ฅ์…˜์„ ์ง€์›ํ•œ๋‹ค.

          ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๊ฐ€ ๋˜์–ด์žˆ๊ณ , ๋ณ„๋„ ์„ค์ •์ด ์—†๋‹ค๋ฉด ์ง€์†์ปค๋„ฅ์…˜์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.

          ์‘๋‹ต์— Connection:close ํ—ค๋”๊ฐ€ ์—†๋‹ค๋ฉด, ์‘๋‹ตํ›„์—๋„ ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜๋Š”๊ฒƒ์œผ๋กœ ์ถ”์ •ํ•œ๋‹ค.

          ์–ธ์ œ๋“ ์ง€ ์„œ๋ฒ„,ํด๋ผ์ด์–ธํŠธ๋Š” ์ปค๋„ฅ์…˜์„ ๋Š์„ ์ˆ˜ ์žˆ๊ณ , Connection:close ์•ˆ ๋ณด๋ƒˆ๋‹ค๊ณ  ์ปค๋„ฅ์…˜์„ ์˜์›ํžˆ ์œ ์ง€ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹ˆ๋‹ค.

    • ํŒŒ์ดํ”„๋ผ์ธ(pipelined) ์ปค๋„ฅ์…˜: ๊ณต์œ  TCP ์ปค๋„ฅ์…˜์„ ํ†ตํ•œ ๋ณ‘๋ ฌ HTTP ์š”์ฒญ

      • keep-alive ์ปค๋„ฅ์…˜์˜ ์„ฑ๋Šฅ์„ ๋†’์—ฌ์ค€๋‹ค.

      • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์ด ๋„์ฐฉํ•˜๊ธฐ์ „๊นŒ์ง€ ํ์— ์Œ“์—ฌ์žˆ๋‹ค.

      • ์ง€์†์ปค๋„ฅ์…˜์ธ ๊ฒฝ์šฐ์—๋งŒ ํด๋ผ์ด์–ธํŠธ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์ด์„์ˆ˜์žˆ๋‹ค.

      • ์‘๋‹ต์€ ์š”์ฒญ ์ˆœ์„œ์™€ ๊ฐ™๊ฒŒ ์™€์•ผํ•œ๋‹ค.

      • ์ปค๋„ฅ์…˜์ด ๋Š์–ด์ง€๋”๋ผ๋„ ์–ธ์ œ๋“  ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผํ•œ๋‹ค.

      • post๊ฐ™์€ ์š”์ฒญ์€ ์š”์ฒญ ์ค‘ ์–ด๋–ค๊ฒƒ์ด ์ฒ˜๋ฆฌ๋ฌ๋Š”์ง€ ์•Œ๊ธธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— post๋ณด๋‚ด๋ฉด์•ˆ๋œ๋‹ค.

    • ๋‹ค์ค‘(Multiplexed) ์ปค๋„ฅ์…˜ : ์š”์ฒญ๊ณผ ์‘๋‹ต๋“ค์— ๋Œ€ํ•œ ์ค‘์žฌ

4) ์ปค๋„ฅ์…˜ ๋Š๊ธฐ

โ‘  ๋งˆ์Œ๋Œ€๋กœ ์ปค๋„ฅ์…˜ ๋Š๊ธฐ

ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„, ํ”„๋ก์‹œ ์–ธ์ œ๋“ ์ง€ TCP ์ „์†ก ์ปค๋„ฅ์…˜์„ ๋Š์„ ์ˆ˜ ์žˆ๋‹ค.

โ‘ก Content-Length, Truncation

์‹ค์ œ ์ „๋‹ฌ๋œ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ ๊ธธ์ด์™€, content-length๊ฐ’์ด ์ผ์น˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ Content-Length ์ž์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ˆ˜์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•ํ•œ๊ธธ์ด๋ฅผ ์„œ๋ฒ„์— ๋ฌผ์–ด๋ด์•ผํ•œ๋‹ค.

โ‘ข ์ปค๋„ฅ์…˜ ๋Š๊ธฐ ํ—ˆ์šฉ, ์žฌ์‹œ๋„, ๋ฉฑ๋“ฑ์„ฑ

์—๋Ÿฌ๊ฐ€ ์—†๋”๋ผ๋„ ์ปค๋„ฅ์…˜์€ ์–ธ์ œ๋“ ์ง€ ๋Š์„ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์ƒ์น˜ ๋ชปํ•˜๊ฒŒ ์ปค๋„ฅ์…˜์ด ๋Š๊ฒผ์„๋•Œ ์ ์ ˆํžˆ ๋Œ€์‘ํ• ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•œ๋ฒˆ ํ˜น์€ ์—ฌ๋Ÿฌ๋ฒˆ ์‹คํ–‰ ๋˜์—ˆ๋Š”์ง€์™€ ์ƒ๊ด€์—†์ด ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์„ ๋•Œ ํŠธ๋žœ์žญ์…˜์„ ๋ฉฑ๋“ฑ(idempotent)ํ•˜๋‹ค๊ณ  ํ‘œํ˜„.

โ‘ฃ์šฐ์•„ํ•œ ์ปค๋„ฅ์…˜ ๋Š๊ธฐ

  • ์ „์ฒด๋Š๊ธฐ(a)์™€ ์ ˆ๋ฐ˜ ๋Š๊ธฐ(b,c)

[์ฐธ์กฐ๋งํฌ]

  1. OSI 7 layers (segment,pakets,..): https://krylon.tistory.com/114

  2. ์†Œ์ผ“ํ†ต์‹  ๊ทธ๋ฆผ: http://jkkang.net/unix/netprg/chap2/net2_1.html

Last updated