4. Transfer codings

์ „์†ก ์ฝ”๋”ฉ(Transfer coding) ์ด๋ฆ„์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด "safe transport" ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŽ˜์ด ๋กœ๋“œ ๋ณธ๋ฌธ์— ์ ์šฉ ๋˜์—ˆ๊ฑฐ๋‚˜ ์ ์šฉ๋˜์–ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์ ์šฉ๋˜์–ด์•ผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฝ”๋”ฉ ๋ณ€ํ™˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Š” ์ „์†ก ์ฝ”๋”ฉ์ด ์ „์†ก๋˜๋Š” ํ‘œํ˜„์˜ ์†์„ฑ์ด ์•„๋‹ˆ๋ผ ๋ฉ”์‹œ์ง€์˜ ์†์„ฑ์ด๋ผ๋Š” ์ ์—์„œ ๋‚ด์šฉ ์ฝ”๋”ฉ๊ณผ ๋‹ค๋ฅด๋‹ค.

transfer-coding = "chunked" ; Section 4.1 / "compress" ; Section 4.2.1 / "deflate" ; Section 4.2.2 / "gzip" ; Section 4.2.3 / transfer-extension

transfer-extension = token *( OWS ";" OWS transfer-parameter ) transfer-parameter = token BWS "=" BWS ( token / quoted-string )

๋ชจ๋“  transfer-coding ์ด๋ฆ„์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ Section 8.4์— ์ •์˜๋œ HTTP Transfer Coding registry์— ๋“ฑ๋กํ•ด์•ผ ํ•œ๋‹ค.

4.1 Chunked Transfer Coding

  • ์ˆ˜์‹ ์ž๋Š” ์ฒญํฌ ๋ถ„ํ•  ์ „์†ก ์ฝ”๋”ฉ์„ ๋ฐ˜๋“œ์‹œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋””์ฝ”๋”ฉ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.(MUST)

4.1.1 Chunk Extensions

  • ์ˆ˜์‹ ์ž๋Š” ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ์ฒญํฌ ํ™•์žฅ์ž๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•œ๋‹ค.(MUST)

4.1.2 Chunked Trailer Part

  • ๋ฐœ์‹ ์ž๋Š” ๋ฉ”์‹œ์ง€ ํ”„๋ ˆ์ด๋ฐ์— ํ•„์š”ํ•œ ํ•„๋“œ(e.g., Transfer-Encoding ๊ณผ Content-Length), ๋ผ ์šฐํŒ… (e.g., Host), ์š”์ฒญ ์ˆ˜์ •์ž (e.g., [RFC7231]์˜ Section 5 ์ œ์–ด์™€ ์กฐ๊ฑด๋ถ€), ๊ถŒํ•œ (e.g., [RFC7235]์™€ [RFC6265]๋ฅผ ๋ด๋ผ), ์‘๋‹ต ์ œ์–ด ๋ฐ์ดํ„ฐ (e.g., [RFC7231]์˜ Section 7.1) ๋˜ ๋Š” ํŽ˜์ด๋กœ๋“œ ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•˜๋Š” ์ง€ (e.g., Content-Encoding, Content-Type, Content-Range๊ณผ Trailer)๋ฅผ ํฌํ•จํ•˜๋Š” ํŠธ๋ ˆ์ผ๋Ÿฌ๋ฅผ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.(MUST NOT)

4.1.3 Decoding Chunked

4.2 Compression Codings

4.2.1 Compress Coding

  • โ€œcompressโ€ ์ฝ”๋”ฉ์€ ๊ณตํ†ต์ ์œผ๋กœ ์œ ๋‹‰์Šค ํŒŒ์ผ ์••์ถ• ํ”„๋กœ๊ทธ๋žจ โ€œcompressโ€๋กœ ์ƒ์‚ฐ๋œ Lempel-Ziv-Welch (LZW) ์ฝ”๋”ฉ์ด๋‹ค. ์ˆ˜์‹ ์ž๋Š” โ€œx-comressโ€๋ฅผ โ€œcompressโ€๋กœ ๋™๋“ฑํ•˜๊ฒŒ ๊ฐ„์ฃผํ•ด์•ผ ํ•œ๋‹ค.(SHOULD)

4.2.2 Deflate Coding

โ€œdeflateโ€ ์ฝ”๋”ฉ์€ Lempel-Ziv (LZ77) ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” โ€œdeflateโ€ ์••์ถ• ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ํฌํ•จํ•˜๋Š” โ€œzlibโ€ ๋ฐ์ดํ„ฐ ํฌ๋ฉง [RFC1950]์ด๋‹ค.

4.2.3 Gzip Coding

  • โ€œgzipโ€ ์ฝ”๋”ฉ์€ ๊ณตํ†ต์ ์œผ๋กœ gzip ํŒŒ์ผ ์••์ถ• ํ”„๋กœ๊ทธ๋žจ [RFC1952]์œผ๋กœ ์ƒ์‚ฐ๋œ LZ77 32๋น„ํŠธ Cyclic Redundancy Check (CRC) ์ฝ”๋”ฉ ์ด๋‹ค. ์ˆ˜์‹ ์ž๋Š” โ€œx-gzipโ€๋ฅผ โ€œgzipโ€๋กœ ๋™๋“ฑํ•˜๊ฒŒ ๊ฐ„์ฃผํ•ด์•ผ ํ•œ๋‹ค.(SHOULD)

4.3 TE

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

  • ํด๋ผ์ด์–ธํŠธ๋Š” TE๋กœ โ€œchunkedโ€ ์ „์†ก ์ฝ”๋”ฉ ์ด๋ฆ„์„ ์ „์†กํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.(MUST NOT);

HTTP/1.1 ์ˆ˜์‹ ์ž๋Š” ํ•ญ์ƒ ์ฒญํฌ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค.

TE ์‚ฌ์šฉ์˜ ์„ธ ๊ฐ€์ง€ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

TE: deflate TE: TE: trailers, deflate;q=0.5

  • TE ํ—ค๋” ํ•„๋“œ๋Š” ๋ฐ”๋กœ ์˜† ์ปค๋„ฅ์…˜์—๋งŒ ์ ์šฉ๋˜๋ฏ€๋กœ, TE์˜ ๋ฐœ์‹ ์ž๋Š” TE ํ•„๋“œ๊ฐ€ ์˜๋ฏธ๋ก ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ค‘๊ฐœ์ž์— ์˜ํ•ด ์ „์†ก ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Connection ํ—ค๋” ํ•„๋“œ(Section 6.1) ๋‚ด์—์„œ โ€œTEโ€ ์ปค๋„ฅ์…˜ ์˜ต์…˜์„ ๋ฐ˜๋“œ์‹œ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค. (MUST)

4.4 Trailer

  • ๋ฉ”์‹œ์ง€๊ฐ€ ์ฒญํฌ ์ „์†ก ์ฝ”๋”ฉ๊ณผ ์ธ์ฝ”๋”ฉ๋œ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์„ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๋ฐœ์‹ ์ž ๋ฉ”์‹œ์ง€ ๋์— ์žˆ๋Š” ํŠธ๋ ˆ์ผ๋Ÿฌ ํ•„๋“œ ํ˜•ํƒœ์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ ์ž ํ•  ๋•Œ, ๋ฐœ์‹ ์ž๋Š” ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ ์•ž์— Trailer ํ—ค๋” ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํŠธ๋ ˆ์ผ๋Ÿฌ์— ์–ด๋–ค ํ•„๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ‘œ์‹œํ•ด์•ผ ํ•œ๋‹ค. (SHOULD)

Trailer = 1#field-name

Last updated

Was this helpful?