15. Entities and Encodings

01) ๋ฉ”์‹œ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ, ์—”ํ„ฐํ‹ฐ๋Š” ํ™”๋ฌผ

๋ฉ”์‹œ์ง€ ์—”ํ„ฐํ‹ฐ๋Š”, ์—”ํ„ฐํ‹ฐํ—ค๋”์™€ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

  • HTTP ๋ฉ”์‹œ์ง€๋ฅผ ์ธํ„ฐ๋„ท ์šด์†ก ์‹œ์Šคํ…œ์˜ ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด, (ํšŒ์ƒ‰ํ…Œ๋‘๋ฆฌ)

  • HTTP ์—”ํ„ฐํ‹ฐ๋Š” ๋ฉ”์‹œ์ง€์˜ ์‹ค์งˆ์ ์ธ ํ™”๋ฌผ์ด๋‹ค. (๊ฒ€์ •์ƒ‰ ์ ์„ )

  • HTTP ์—”ํ„ฐํ‹ฐ ํ—ค๋”๋Š” HTTP ๋ฉ”์‹œ์ง€์˜ ๋‚ด์šฉ๋ฌผ์„ ์„ค๋ช…ํ•œ๋‹ค.

      **์ฃผ์š” ์—”ํ„ฐํ‹ฐ ํ—ค๋” ํ•„๋“œ 10๊ฐ€์ง€(HTTP/1.1)**
      - Content-Type: ์—”ํ„ฐํ‹ฐ์— ์˜ํ•ด ์ „๋‹ฌ๋œ ๊ฐ์ฒด์˜ ์ข…๋ฅ˜
      - Content-Length: ์ „๋‹ฌ๋˜๋Š” ๋ฉ”์„ธ์ง€์˜ ๊ธธ์ด๋‚˜ ํฌ๊ธฐ
      - Content-Language: ์ „๋‹ฌ๋˜๋Š” ๊ฐ์ฒด์™€ ๊ฐ€์žฅ ์ž˜ ๋Œ€์‘๋˜๋Š” ์ž์—ฐ์–ด
      - Content-Encoding: ๊ฐ์ฒด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํ–‰ํ•ด์ง„ ๋ณ€ํ˜•(์••์ถ• ๋“ฑ)
      - Content-Location: ์š”์ฒญ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ์ฒด์˜ ๋˜ ๋‹ค๋ฅธ ์œ„์น˜
      - Content-Range: ๋งŒ์•ฝ ์ด ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋ถ€๋ถ„ ์—”ํ„ฐํ‹ฐ๋ผ๋ฉด, ์ด ์—”ํ„ฐํ‹ฐ๊ฐ€ ์ „์ฒด์—์„œ ์–ด๋Š๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์ •์˜
      - Content-MD5: ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ฒดํฌ์„ฌ
      - Last-Modified: ์„œ๋ฒ„์—์„œ ์ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ƒ์„ฑ ํ˜น์€ ์ˆ˜์ •๋œ๋‚ .
      - Expires: ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋”์ด์ƒ ์‹ ์„ ํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ์‹œ์ž‘ํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ
      - Allow: ์ด ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์–ด๋–ค ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ ํ—ˆ์šฉ๋˜๋Š”์ง€

โ‘  ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ

  • ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์€ ๊ฐ€๊ณต๋˜์ง€ ์•Š์€ ๋‚ (raw) ๋ฐ์ดํ„ฐ๋งŒ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

  • ๋‹ค๋ฅธ ์ •๋ณด๋“ค์€ ๋ชจ๋‘ ํ—ค๋”์— ๋‹ด๊ฒจ์žˆ๋‹ค.

  • ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์€ ๊ฐ€๊ณต๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋ถˆ๊ณผํ•˜๋ฏ€๋กœ, ์—”ํ„ฐํ‹ฐ ํ—ค๋”๋Š” ๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

    • ์˜ˆ์‹œ

      • Content-Type: ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์„ํ•ด์•ผํ•˜๋Š”์ง€

      • Content-Encoding: ๋ฐ์ดํ„ฐ ์••์ถ• ํ˜น์€ ์ถ”๊ฐ€์ ์ธ ์ธ์ฝ”๋”ฉ์ด ๋˜์—ˆ๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.

  • ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์€ ์ฝ˜ํ…์ธ ๊ฐ€ ํ…์ŠคํŠธ, ๋ฐ”์ด๋„ˆ๋ฆฌ, ์ด๋ฏธ์ง€, ์••์ถ• ์œ ๋ฌด, ์˜์–ด, ์ผ์–ด์— ์ƒ๊ด€์—†์ด ํ•ญ์ƒ CRLF ๋ฐ”๋กœ ๋‹ค์Œ์— ์œ„์น˜ํ•œ๋‹ค.

02) Content-Length: ์—”ํ„ฐํ‹ฐ์˜ ๊ธธ์ด

  • ๋ฉ”์„ธ์ง€ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • ์–ด๋–ป๊ฒŒ ์ธ์ฝ”๋”ฉ ๋˜์—ˆ๋Š” ์ƒ๊ด€์—†์ด ํฌ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (gzip์œผ๋กœ ์••์ถ•๋œ ํŒŒ์ผ์€ ์••์ถ• ํ›„ ํฌ๊ธฐ)

  • Content-Length ํ—ค๋”๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฒญํฌ ์ธ์ฝ”๋”ฉ์œผ๋กœ ์ „์†กํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์„ ํฌํ•จํ•œ ๋ฉ”์‹œ์ง€์—์„œ๋Š” ํ•„์ˆ˜๋กœ ์žˆ์–ด์•ผํ•œ๋‹ค.

  • Content-Length๋Š” ์„œ๋ฒ„ ์ถฉ๋Œ๋กœ ์ธํ•ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ž˜๋ ธ๋Š”์ง€ ๊ฐ์ง€ํ•˜๊ณ ์ž ํ•  ๋•Œ์™€

    ์ง€์† ์ปค๋„ฅ์…˜์„ ๊ณต์œ ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ถ„ํ• ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•˜๋‹ค.

โ‘  ์ž˜๋ฆผ ๊ฒ€์ถœ

  • ์˜›๋‚ ๋ฒ„์ „์˜ HTTP๋Š” ์ปค๋„ฅ์…˜์ด ๋‹ซํžŒ๊ฒƒ์„ ๋ณด๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋๋‚ฌ์Œ์„ ์ธ์ง€ํ–ˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ Content-Length๊ฐ€ ์—†๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์ปค๋„ฅ์…˜์ด ์ •์ƒ์ ์œผ๋กœ ๋‹ซํžŒ๊ฑด์ง€, ์ „์†ก์ค‘์— ์„œ๋ฒ„์— ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋ฉ”์‹œ์ง€ ์ž˜๋ฆผ์„ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•ด Content-Length ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

  • ์บ์‹ฑ ํ”„๋ฝ์‹œ ์„œ๋ฒ„์— ํŠนํžˆ ์ทจ์•ฝํ•˜๋‹ค.

    • ์ž˜๋ฆฐ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ–ˆ๋Š”๋ฐ, ์ž˜๋ฆฐ๊ฑธ ์ธ์‹๋ชปํ•˜๋ฉด ์บ์‹œ๋Š” ๊ฒฐํ•จ์ด ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณ„์† ์ œ๊ณตํ•œ๋‹ค.

    • ์ž˜๋ฆฐ ๋ฉ”์„ธ์ง€๋ฅผ ์บ์‹œํ•˜๋Š” ์œ„ํ—˜์„ ์ค„์ด๊ณ ์ž ์บ์‹ฑ ํ”„๋ฝ์‹œ ์„œ๋ฒ„๋Š” ๋ช…์‹œ์ ์œผ๋กœ Content-Lengthํ—ค๋”๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์€ HTTP ๋ณธ๋ฌธ์€ ๋ณดํ†ต ์บ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.

โ‘ก ์ž˜๋ชป๋œ Content-Length

  • Content-Length๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, ์•„์— ๋น ์ง„ ๊ฒƒ๋ณด๋‹ค ๋” ํฐ ํ”ผํ•ด๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ดˆ์ฐฝ๊ธฐ ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„ ์ค‘ ์ผ๋ถ€๋Š” Content-Length ๊ณ„์‚ฐ๊ณผ ๊ด€๋ จ๋œ ์ž˜ ์•Œ๋ ค์ง„ ๋ฒ„๊ทธ๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์„œ

    ์ด๋Ÿฐ ์˜ค๋™์ž‘์„ ํ–ˆ๋Š”์ง€ ํƒ์ƒ‰ํ•˜๊ณ  ๊ต์ •์„ ์‹œ๋„ํ•œ๋‹ค.

  • ๊ณต์‹์ ์œผ๋กœ HTTP/1.1 ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๋Š”

    ์ž˜๋ชป๋œ ๊ธธ์ด๋ฅผ ๋ฐ›๊ณ  ๊ทธ ์‚ฌ์‹ค์„ ์ธ์ง€ ํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ฒŒ ๋˜์–ด ์žˆ๋‹ค.

โ‘ข Content-Length ์™€ ์ง€์† ์ปค๋„ฅ์…˜ (Persistent Connection)

  • Content-Length ๋Š” ์ง€์† ์ปค๋„ฅ์…˜์„ ์œ„ํ•ด ํ•„์ˆ˜๋‹ค.

  • ๋งŒ์•ฝ ์‘๋‹ต์ด ์ง€์† ์ปค๋„ฅ์…˜์„ ํ†ตํ•ด ์˜จ ๊ฒƒ์ด๋ผ๋ฉด, ๋˜ ๋‹ค๋ฅธ HTTP ์‘๋‹ต์ด ์ฆ‰์‹œ ๋’ค๋ฅผ ์ž‡๋Š”๋‹ค.

  • Content-Length ํ—ค๋”๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฉ”์‹œ์ง€ ํ•˜๋‚˜๊ฐ€ ์–ด๋””์„œ ๋๋‚˜๊ณ  ๋‹ค์Œ ์‹œ์ž‘์ด ์–ด๋”˜์ง€ ์•Œ๋ ค์ค€๋‹ค.

  • ์ปค๋„ฅ์…˜์ด ์ง€์†์ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ปค๋„ฅ์…˜์ด ๋‹ซํžŒ ์œ„์น˜๋ฅผ ๊ทผ๊ฑฐ๋กœ ๋ฉ”์‹œ์ง€์˜ ๋์„ ์ธ์‹ํ•˜๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅ.

โ‘ฃ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ

  • HTTP๋Š” ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ฑฐ๋‚˜ ์••์ถ•์„ ํ†ตํ•ด ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋„๋ก, ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์„ ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

  • ๋งŒ์•ฝ ๋ณธ๋ฌธ์˜ ์ฝ˜ํ…์ธ ๊ฐ€ ์ธ์ฝ”๋”ฉ ๋˜์–ด ์žˆ๋‹ค๋ฉด,

    Content-Lengthํ—ค๋”๋Š” ์ธ์ฝ”๋”ฉ ๋˜์ง€ ์•Š์€ ์›๋ณธ๊ธธ์ด๊ฐ€ ์•„๋‹Œ ์ธ์ฝ”๋”ฉ๋œ ๋ณธ๋ฌธ์˜ ๊ธธ์ด๋ฅผ ๋ฐ”์ดํŠธ๋‹จ์œ„๋กœ ์ •์˜ํ•œ๋‹ค.

โ‘ค ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ ๊ธธ์ด ํŒ๋ณ„์„ ์œ„ํ•œ ๊ทœ์น™

  • ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ ๊ธธ์ด์™€ ๋๋‚˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ”๋ฅด๊ฒŒ ํŒ๋ณ„ํ•˜๋Š” ์ƒํ™ฉ๋ณ„ ๊ทœ์น™. (๋‚˜์—ด๋œ ์ˆœ์œผ๋กœ ์ ์šฉํ•ด์•ผ ํ•œ๋‹ค.)

1. ๋ณธ๋ฌธ์„ ๊ฐ–๋Š” ๊ฒƒ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ํŠน์ • ํƒ€์ž…์˜ HTTP ๋ฉ”์‹œ์ง€์—์„œ๋Š” Content-Length ํ—ค๋”๊ฐ€ ๋ฌด์‹œ๋œ๋‹ค.  
   (ex.HEAD method) 
2. ๋ฉ”์„ธ์ง€๊ฐ€ Transfer-Encoding ํ—ค๋”๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ปค๋„ฅ์…˜์ด ๋‹ซํ˜€ ๋จผ์ € ๋๋‚˜์ง€ ์•Š๋Š” ์ด์ƒ,     
   ์—”ํ„ฐํ‹ฐ๋Š” '0 ๋ฐ”์ดํŠธ ์ฒญํฌ'๋ผ ๋ถˆ๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ํŒจํ„ด์œผ๋กœ ๋๋‚˜์•ผํ•œ๋‹ค. 
3. ๋ฉ”์‹œ์ง€๊ฐ€ Content-Length ํ—ค๋”๋ฅผ ๊ฐ–๋Š”๋‹ค๋ฉด (๋ฉ”์‹œ์ง€ ์œ ํ˜•์ด ์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ์„ ํ—ˆ์šฉํ•œ๋‹ค๋ฉด)  
   Transfer-Encoding ํ—ค๋”๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”์ด์ƒ Content-Length๊ฐ’์€ ๋ณธ๋ฌธ ๊ธธ์ด๋ฅผ ๋‹ด๋Š”๋‹ค.
4. ๋ฉ”์‹œ์ง€๊ฐ€ `multipart/byteranges` ๋ฏธ๋””์–ด ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ณ , ์—”ํ„ฐํ‹ฐ ๊ธธ์ด๊ฐ€ ๋ณ„๋„ ์ง€์ •์ด ์•ˆ๋ฌ๋‹ค๋ฉด,  
   ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ฉ”์‹œ์ง€์˜ ๊ฐ๋ถ€๋ถ„์€ ๊ฐ์ž๊ฐ€ ์Šค์Šค๋กœ์˜ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•ด์•ผํ•œ๋‹ค.
5. ์œ„์— ์–ด๋–ค ๊ทœ์น™์—๋„ ํ•ด๋‹น๋˜์ง€ ์•Š์„๋•Œ, ์—”ํ„ฐํ‹ฐ๋Š” ์ปค๋„ฅ์…˜์ด ๋‹ซํž ๋•Œ ๋๋‚œ๋‹ค.   
   (์‹ค์งˆ์ ์œผ๋กœ ์„œ๋ฒ„๋งŒ ๋ฉ”์‹œ์ง€๊ฐ€ ๋๋‚ฌ์Œ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ปค๋„ฅ์…˜์„ ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค.)
6. HTTP/1.0 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด, ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์„ ๊ฐ€์ง„ HTTP/1.1 ์š”์ฒญ์€ ๋ฐ˜๋“œ์‹œ ์œ ํšจํ•œ  
   Content-Length ํ—ค๋”๋„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค.
   1. ์š”์ฒญ์— ๋ณธ๋ฌธ์€ ์žˆ์œผ๋‚˜ Content-Lengthํ—ค๋”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ,๋ฉ”์‹œ์ง€ ๊ธธ์ด ํŒ๋ณ„ ๋ถˆ๊ฐ€์‹œ `400 Bad Request`
   2. ์‘๋‹ต์„ ๋ณด๋‚ด๊ณ  ์œ ํšจํ•œ Content-Length๋ฅผ ๋ณด๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด `411 Length Required` ์‘๋‹ต์„ ๋ณด๋‚ด๋ผ๊ณ  
       HTTP/ 1.1 ๋ช…์„ธ์— ์กฐ์–ธํ•œ๋‹ค.

03) ์—”ํ„ฐํ‹ฐ ์š”์•ฝ

  • HTTP ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ TCP/IP ์™€ ๊ฐ™์ด ์‹ ๋ขฐํ• ๋งŒํ•œ ์ „์†ก ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ๊ตฌํ˜„์ด ๋จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ถˆ์™„์ „ํ•œ ํŠธ๋žœ์Šค์ฝ”๋”ฉ ํ”„๋ฝ์‹œ, ๋ฒ„๊ทธ๊ฐ€ ๋งŽ์€ ์ค‘๊ฐœ์ž ํ”„๋ฝ์‹œ๋ฅผ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ์ „์†ก์ค‘ ๋ณ€ํ˜•๋˜๋Š” ์ผ์ด ์ผ์–ด ๋‚œ๋‹ค.

  • ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜๋„์น˜ ์•Š์€ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ดˆ ์—”ํ„ฐํ‹ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์†ก์‹ ์ž๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ฒดํฌ์„ฌ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์ˆ˜์‹ ์ž๋Š” ๋ชจ๋“  ์˜๋„์น˜ ์•Š์€ ์—”ํ„ฐํ‹ฐ์˜ ๋ณ€๊ฒฝ์„ ์žก๊ธฐ์œ„ํ•ด ์ฒดํฌ์„ฌ์œผ๋กœ ๊ธฐ๋ณธ ๊ฒ€์‚ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

04) ๋ฏธ๋””์–ด ํƒ€์ž…๊ณผ ์ฐจ์…‹(Charset)

  • Content-Type ํ—ค๋” ํ•„๋“œ๋Š” ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ MIME ํƒ€์ž…์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

  • MIME ํƒ€์ž…: ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋งค์ฒด์˜ ๊ธฐ์ €ํ˜•์‹์˜ ํ‘œ์ค€ํ™”๋œ ํ˜•์‹ (html, word, mpeg, video, ..etc)

    • ์ฃผ ๋ฏธ๋””์–ดํƒ€์ž… / ๋ถ€ ํƒ€์ž…(subtype)

      • ์ฃผ๋ฏธ๋””์–ดํƒ€์ž…: text, image, audio, ..

      • ๋ถ€ ํƒ€์ž…: ๋ฏธ๋””์–ดํƒ€์ž…์„ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„œ์ˆ 

  • ํด๋ผ์ด์–ธํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฝ˜ํ…์ธ ๋ฅผ ์ ์ ˆํžˆ ํ•ด๋…ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด MIME ํƒ€์ž…์„ ์ด์šฉํ•œ๋‹ค.

  • Content-Type ํ—ค๋”๊ฐ€ ์›๋ณธ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์˜ ๋ฏธ๋””์–ด ํƒ€์ž…์„ ๋ช…์‹œํ•˜๋Š”๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์—”ํ„ฐํ‹ฐ๊ฐ€ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ์„ ๊ฑฐ์นœ ๊ฒฝ์šฐ์—๋„ Content-Type ํ—ค๋”๋Š” ์—ฌ์ „ํžˆ ์ธ์ฝ”๋”ฉ ์ „์˜ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ ์œ ํ˜•์„ ๋ช…์‹œํ•  ๊ฒƒ์ด๋‹ค.

โ‘  ํ…์ŠคํŠธ ๋งค์ฒด๋ฅผ ์œ„ํ•œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ

  • Content-Type ํ—ค๋”๋Š” ๋‚ด์šฉ์œ ํ˜•์„ ๋” ์ž์„ธํžˆ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ, ์„ ํƒ์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ง€์›ํ•œ๋‹ค.

  • ์—”ํ„ฐํ‹ฐ์˜ ๋น„ํŠธ ์ง‘ํ•ฉ์„ ํ…์ŠคํŠธ ํŒŒ์ผ์˜ ๊ธ€์ž๋“ค๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ charset ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋Œ€ํ‘œ ์˜ˆ.

Content-Type: text/html; charset=iso=8859-4

โ‘ก ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ฏธ๋””์–ด ํƒ€์ž…

  • 'multipart' email ๋ฉ”์„ธ์ง€๋Š” ์„œ๋กœ ๋ถ™์–ด์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ํ•˜๋‚˜์˜ ๋ณตํ•ฉ๋ฉ”์‹œ์ง€๋กœ ๋ณด๋‚ด์ง„๋‹ค.

  • ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ž์กฑ์ ์œผ๋กœ ์ž์‹ ์— ๋Œ€ํ•ด ์„œ์ˆ ํ•˜๋Š” ํ—ค๋”๋ฅผ ํฌํ•จํ•œ๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ์ด์–ด์ ธ์žˆ๊ณ , ๋ฌธ์ž์—ด ํ•˜๋‚˜๋กœ ์„œ๋กœ์˜ ๊ฒฝ๊ณ„๊ฐ€ ์‹๋ณ„๋œ๋‹ค.

  • HTTP๋Š” ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ณธ๋ฌธ๋„ ์ง€์›ํ•œ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ 2๊ฐ€์ง€ ๊ฒฝ์šฐ๋งŒ ์ง€์›)

    • ๋ฉ€ํ‹ฐํŒŒํŠธ ํผ์„ ์ฑ„์›Œ์„œ ์ œ์ถœํ•  ๋•Œ

      • multipart/form-data ๋˜๋Š” multipart/mixed ํ—ค๋”์— ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ณธ๋ฌธ์„ ํ•จ๊ป˜ ๋ณด๋‚ธ๋‹ค.

        Content-Type: multipart/form-data; boundary=[abcdefghijklmnopqrstuvwzyz]
        boundary๋Š” ๋ณธ๋ฌธ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ถ„์ž๋กœ ์“ฐ์ธ๋‹ค.
    • ๋ฌธ์„œ์˜ ์ผ๋ถ€๋ถ„์„ ์‹ค์–ด ๋‚˜๋ฅด๋Š” ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ฒ”์œ„ ์‘๋‹ต์„ ํ•  ๋•Œ

      • ์ด๋Ÿฌํ•œ ์‘๋‹ต์€Content-Type: multipart/byteranges ํ—ค๋” ๋ฐ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฒ”์œ„๋ฅผ ๋‹ด์€ ๋ฉ€ํ‹ฐํŒŒํŠธ ๋ณธ๋ฌธ์ด ํ•จ๊ป˜ ์˜จ๋‹ค.

5) ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ

  • HTTP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋•Œ๋•Œ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์ธ์ฝ”๋”ฉ์„ ํ•˜๋ ค ํ•œ๋‹ค.

  • ์˜ˆ

    • ๋Š๋ฆฐ์†๋„๋กœ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํฐ HTML ๋ฌธ์„œ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์„œ๋ฒ„๋Š” ์ „์†ก์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์••์ถ•

    • ์„œ๋ฒ„๋Š” ํ—ˆ๊ฐ€๋ฐ›์ง€ ์•Š์€ ์ œ 3์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๊ฒŒ ์ฝ˜ํ…์ธ ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ฑฐ๋‚˜ ๋’ค์„ž์–ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ.

  • ๋ฐœ์†กํ•˜๋Š” ์ชฝ์—์„œ ์ฝ˜ํ…์ธ ์— ์ ์šฉํ•˜๊ณ , ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ์ด ์™„๋ฃŒ๋œ ํ›„์—๋Š” ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์— ๋‹ด์•„ ์ˆ˜์‹ ์ž์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.

โ‘  ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ๊ณผ์ •

1. ์›น์„œ๋ฒ„๊ฐ€ ์›๋ณธ Content-Type๊ณผ Content-Length ํ—ค๋”๋ฅผ ์ˆ˜๋ฐ˜ํ•œ ์›๋ณธ ์‘๋‹ต ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑ
2. ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์„œ๋ฒ„๊ฐ€ ์ธ์ฝ”๋”ฉ๋œ ๋ฉ”์„ธ์ง€ ์ƒ์„ฑ (์›์„œ๋ฒ„ or ๋‹ค์šด์ŠคํŠธ๋ฆผ ํ”„๋ฝ์‹œ)
    1. Content-Type ์€ ๊ฐ™์ง€๋งŒ Content-Length๋Š” ๋‹ค๋ฅด๋‹ค.
    2. ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์„œ๋ฒ„๋Š” Content-Encodingํ—ค๋”๋ฅผ ์ธ์ฝ”๋”ฉ๋œ ๋ฉ”์‹œ์ง€์— ์ถ”๊ฐ€ํ•˜์—ฌ,   
       ์ˆ˜์‹ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ทธ๊ฒƒ์„ ๋””์ฝ”๋”ฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
3. ์ˆ˜์‹ ์ธก ํ”„๋กœ๊ทธ๋žจ์€ ์ธ์ฝ”๋”ฉ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„์„œ ๋””์ฝ”๋”ฉํ•˜๊ณ  ์›๋ณธ์„ ์–ป๋Š”๋‹ค.

โ‘ก ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์œ ํ˜•

  • HTTP ๋Š” ๋ช‡๊ฐ€์ง€ ํ‘œ์ค€ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์œ ํ˜•์„ ์ •์˜ํ•˜๊ณ , ํ™•์žฅ ์ธ์ฝ”๋”ฉ์œผ๋กœ ์ธ์ฝ”๋”ฉ์„ ์ถ”๊ฐ€ํ•˜๋Š”๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค.

  • ์ธ์ฝ”๋”ฉ์€ ๊ฐ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด ๊ณ ์œ ํ•œ ํ† ํฐ์„ ํ• ๋‹นํ•˜๋Š” IANA๋ฅผ ํ†ตํ•ด ํ‘œ์ค€ํ™”๋œ๋‹ค.

  • Content-Encoding ํ—ค๋”๋Š” ํ‘œ์ค€ํ™”๋œ ํ† ํฐ๊ฐ’์„ ์ด์šฉํ•ด์„œ, ์ธ์ฝ”๋”ฉ์— ์‚ฌ์šฉ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ๊ธฐ์ˆ ํ•œ๋‹ค.

  • ํ”ํžˆ ์“ฐ์ด๋Š” ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ํ† ํฐ

      * gzip: Entity์— GNU zip ์ธ์ฝ”๋”ฉ์ด ์ ์šฉ๋˜์—ˆ์Œ์„ ์˜๋ฏธ [์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ํšจ์œจ์ ์ด๊ณ , ๋„๋ฆฌ ์“ฐ์ž„]
      * compress: Entity์— ๋Œ€ํ•ด ์œ ๋‹‰์Šค ํŒŒ์ผ์••์ถ•ํ”„๋กœ๊ทธ๋žจ('compress')์ด ์‹คํ–‰๋˜์—ˆ์Œ์„ ์˜๋ฏธ.
      * deflate: Entity๊ฐ€ zlib ํฌ๋งท์œผ๋กœ ์••์ถ•๋˜์—ˆ์Œ์„ ์˜๋ฏธ.
      * identity: 
          - Entity์— ์–ด๋–ค ์ธ์ฝ”๋”ฉ๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธ. 
          - Content-Encoding ํ—ค๋”๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ด ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  • gzip, compress, deflate: ๋ฌด์†์‹ค ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ „์†ก๋˜๋Š” ๋ฉ”์„ธ์ง€ ํฌ๊ธฐ๋ฅผ ์ •๋ณด ์†์‹ค์—†์ด ์ค„์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜]

โ‘ข Accept-Encoding ํ—ค๋”

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด

    ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์ด ์ง€์›ํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ชฉ๋ก์„ Accept-Encoding ์š”์ฒญํ—ค๋”๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•œ๋‹ค.

  • ๋งŒ์•ฝ Accept-Encoding ์ด ํฌํ•จ๋˜์ง€ ์•Š๋‹ค๋ฉด ์–ด๋–ค ์ธ์ฝ”๋”ฉ์ด๋“  ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ›์•„๋“ค์ธ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ.

    [= Accept-Encoding: *]

  • ์‚ฌ์šฉ ์˜ˆ: ํ•„๋“œ์—๋Š” ์ง€์›๋˜๋Š” ์ธ์ฝ”๋”ฉ๋“ค์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์„ ๋‹ด๋Š”๋‹ค.

      Accept-Encoding: compress, gzip
      Accept-Encoding: *
      Accept-Encoding: 
      Accept-Encoding: compress;q=0.5, gzip;q=1.0
      Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
    • q๊ฐ’: '์„ ํ˜ธ๋„'๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค(๊ฐ€์žฅ์„ ํ˜ธ: 1.0, ๋น„์„ ํ˜ธ: 0.0)

    • *: '๊ทธ ์™ธ ๋ชจ๋‘'๋ฅผ ์˜๋ฏธ.

    • identity : ์˜ค์ง Accept-Encoding ํ—ค๋”์—๋งŒ ์กด์žฌ ๊ฐ€๋Šฅ. ํด๋ผ์ด์–ธํŠธ์—์˜ํ•ด ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ƒ๋Œ€์  ์„ ํ˜ธ๋„ ์ •์˜์— ์ด์šฉ

6) ์ „์†ก ์ธ์ฝ”๋”ฉ๊ณผ ์ฒญํฌ ์ธ์ฝ”๋”ฉ

  • ์ „์†ก์ธ์ฝ”๋”ฉ ๋˜ํ•œ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์— ์ ์šฉ๋˜๋Š” ๊ฐ€์—ญ์ ์ธ ๋ณ€ํ™˜์ด์ง€๋งŒ,

  • ๊ตฌ์กฐ์ ์ธ ์ด์œ  ๋•Œ๋ฌธ์— ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด๊ณ , ์ฝ˜ํ…์ธ ์˜ ํฌ๋งท๊ณผ๋Š” ๋…๋ฆฝ์ ์ด๋‹ค.

โ‘  ์•ˆ์ „ํ•œ ์ „์†ก

  • ์ „์†ก์ธ์ฝ”๋”ฉ์€ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์—์„œ๋„ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ '์•ˆ์ „ํ•œ ์ „์†ก'์„ ์œ„ํ•ด ์กด์žฌํ–ˆ๋‹ค.

  • ํ‘œ์ค€ํ™”๋˜๊ณ  ๋” ๋„ˆ๊ทธ๋Ÿฌ์šด ์ „์†ก ๊ธฐ๋ฐ˜์„ ๊ฐ–์ถ˜ HTTP๋Š” '์•ˆ์ „ํ•œ ์ „์†ก'์˜ ์ดˆ์ ์„ ๋‹ค๋ฅธ๋ฐ ๋งž์ถ”๊ณ  ์žˆ๋‹ค.

  • HTTP์—์„œ ์ „์†ก๋œ ๋ฉ”์‹œ์ง€์˜ ๋ณธ๋ฌธ์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ด์œ ๋Š” ๋ช‡๊ฐ€์ง€ ์—†๋Š”๋ฐ 2๊ฐ€์ง€ ์‚ดํŽด๋ด„.

    • ์•Œ ์ˆ˜ ์—†๋Š” ํฌ๊ธฐ: ๋ช‡๋ช‡ ๊ฒŒ์ดํŠธ์›จ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์˜ ์ตœ์ข… ํฌ๊ธฐ๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค. ๋ช‡๋ช‡ ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ์˜ ๋์„ ์•Œ๋ฆฌ๋Š” ์ข…๊ฒฐ ๊ผฌ๋ฆฌ๋ง์„ ํฌํ•จ์‹œ์ผœ, ์ „์†ก ์ธ์ฝ”๋”ฉ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ ค ์‹œ๋„ํ•œ๋‹ค.

    • ๋ณด์•ˆ: ๊ณต์šฉ ์ „์†ก ๋„คํŠธ์›Œํฌ๋กœ ๋ฉ”์‹œ์ง€ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋‚ด๊ธฐ์ „, ์ „์†ก ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•ด ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต๊ฒŒ ๋’ค์„ž๋Š” ๋ฐฉ๋ฒ•. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฏธ SSL๊ณผ ๊ฐ™์€ ์œ ๋ช…ํ•œ ์ „์†ก ๊ฒŒ์ธต ๋ณด์•ˆ ๋ฐฉ์‹์ด ์žˆ์–ด์„œ ํ”์น˜ ์•Š๋‹ค.

โ‘ก Transfer-Encoding (์ „์†ก ์ธ์ฝ”๋”ฉ)

  • ์ „์†ก ์ธ์ฝ”๋”ฉ์„ ์ œ์–ดํ•˜๊ณ  ์„œ์ˆ ํ•˜๊ธฐ ์œ„ํ•ด ์ •์˜๋œ ํ—ค๋” (๋‹จ 2๊ฐ€์ง€)

    • Transfer-Encoding: ์•ˆ์ „ํ•œ ์ „์†ก์„ ์œ„ํ•ด ์–ด๋–ค ์ธ์ฝ”๋”ฉ์ด ๋ฉ”์‹œ์ง€์— ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ์ˆ˜์‹ ์ž์— ์•Œ๋ฆฐ๋‹ค.

    • TE: ์–ด๋–ค ํ™•์žฅ๋œ ์ „์†ก ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์„œ๋ฒ„์— ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์š”์ฒญํ—ค๋”์— ์‚ฌ์šฉํ•œ๋‹ค.

โ‘ข Chunked Encoding (์ฒญํฌ ์ธ์ฝ”๋”ฉ)

  • ์ฒญํฌ ์ธ์ฝ”๋”ฉ์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ผ์ • ํฌ๊ธฐ์˜ ์ฒญํฌ ์—ฌ๋Ÿฟ์œผ๋กœ ์ชผ๊ฐ ๋‹ค.

  • ์„œ๋ฒ„๋Š” ๊ฐ ์ฒญํฌ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ณด๋‚ธ๋‹ค.

  • ์ฒญํฌ ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์ „์ฒด ํฌ๊ธฐ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • ๋ณธ๋ฌธ์ด ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋จ์— ๋”ฐ๋ผ, ์„œ๋ฒ„๋Š” ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ฒ„ํผ์— ๋‹ด์€ ๋’ค ํ•œ ์ฒญํฌ๋ฅผ ๊ทธ๊ฒƒ์˜ ํฌ๊ธฐ์™€ ํ•จ๊ป˜ ๋ณด๋‚ผ ์ˆ˜ ์ž‡๋‹ค. ๋ณธ๋ฌธ ์ „์ฒด๋ฅผ ๋ณด๋‚ผ ๋•Œ๊นŒ์ง€ ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

  • ์ฒญํฌ ์ธ์ฝ”๋”ฉ์ด ์ „์†ก์ธ์ฝ”๋”ฉ์˜ ํ•œ ํ˜•ํƒœ์ด๋ฉฐ ๋”ฐ๋ผ์„œ ๋ณธ๋ฌธ์ด ์•„๋‹Œ, ๋ฉ”์‹œ์ง€์˜ ์†์„ฑ์„ ์ฃผ๋ชฉ.

โ‘ฃ ์ฝ˜ํ…์ธ ์™€ ์ „์†ก ์ธ์ฝ”๋”ฉ์˜ ์กฐํ•ฉ

  • ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ๊ณผ ์ „์†ก ์ธ์ฝ”๋”ฉ์€ ๋™์‹œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

  • ์ „์†ก ์ธ์ฝ”๋”ฉ์ด ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ์ ์šฉ๋  ๋•Œ ๋ช‡๊ฐ€์ง€ ๊ทœ์น™์ด ์ ์šฉ๋˜์•ผํ•œ๋‹ค. (p414)

7) ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ฐ”๋€Œ๋Š” ์ธ์Šคํ„ด์Šค

  • ์›น ๊ฐ์ฒด๋Š” ์ •์ ์ด์ง€ ์•Š๋‹ค.

  • ๊ฐ™์€ URL์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

  • HTTP ํ”„๋กœํ† ์ฝœ์€ ์–ด๋–ค ํŠน์ •ํ•œ ์ข…๋ฅ˜์˜ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.[=์ธ์Šคํ„ด์Šค ์กฐ์ž‘]

    ๋Œ€ํ‘œ์ ์ธ 2๊ฐ€์ง€

    • ๋ฒ”์œ„ ์š”์ฒญ

      • HTTP ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ›๋‹ค๊ฐ€ ์‹คํŒจํ•œ ์—”ํ„ฐํ‹ฐ๋ฅผ ์ผ๋ถ€ ํ˜น์€ ๋ฒ”์œ„๋กœ ์š”์ฒญํ•จ์œผ๋กœ์จ, ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ค‘๋‹จ๋œ ์‹œ์ ์—์„œ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

      • ๋˜ํ•œ ์—ฌ๋Ÿฌ ๋ฒ”์œ„๋กœ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๊ฐ™์€ ๋ฌธ์„œ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ”์œ„๋ฅผ ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ.

    • ๋ธํƒ€ ์ธ์ฝ”๋”ฉ

      • ๊ฐ์ฒด ์ „์ฒด๊ฐ€ ์•„๋‹Œ, ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋งŒ ํ†ต์‹ ํ•˜์—ฌ ์ „์†ก๋Ÿ‰์„ ์ตœ์ ํ™”ํ•˜๋Š” HTTPํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ.

  • ์œ„ 2๊ฐ€์ง€ ๋ชจ๋‘ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฆฌ์†Œ์Šค ์‚ฌ๋ณธ๊ณผ ์„œ๋ฒ„๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์ด ์ •ํ™•ํžˆ ๊ฐ™์€์ง€ ํŒ๋‹จํ•˜๊ณ  ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์งˆ ๊ฒƒ์„ ์š”๊ตฌํ•œ๋‹ค.

8) ๊ฒ€์‚ฌ๊ธฐ์™€ ์‹ ์„ ๋„

ch07 ์ฐธ์กฐ (๋ฉ”๋ชจ ์ƒ๋žต)

Last updated