Transfer-Encoding ãããã¼
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
HTTP ã® Transfer-Encoding ãªã¯ã¨ã¹ããããã¼ããã³ã¬ã¹ãã³ã¹ãããã¼ãããã¼ã¯ããããã¯ã¼ã¯ä¸ã®ãã¼ãéã§ã¡ãã»ã¼ã¸ã転éããéã«ä½¿ç¨ããã¨ã³ã³ã¼ãæ¹å¼ãæå®ãã¾ãã
Transfer-Encoding ã¯ããããã¤ããããããã¼ã§ããããªã½ã¼ã¹èªä½ã§ã¯ãªããäºã¤ã®ãã¼ãéã®ã¡ãã»ã¼ã¸ã«é©ç¨ããã¾ãã
ãã¼ãéã®ã³ãã¯ã·ã§ã³ãè¤æ°ããå ´åã¯ãããããã®åºéã§ä½¿ç¨ãã Transfer-Encoding ã®å¤ãç°ãªããã¨ãããã¾ãã
ã³ãã¯ã·ã§ã³å
¨ä½ãéãã¦ãã¼ã¿ãå§ç¸®ãããå ´åã¯ã代ããã«ã¨ã³ããã¥ã¨ã³ãã® Content-Encoding ãããã¼ã使ç¨ãã¦ãã ããã
å®éã«ã¯ãã®ãããã¼ã¯ã»ã¨ãã©ä½¿ç¨ãããã使ç¨ãããå ´åã§ãã»ã¼å¸¸ã« chunked ã§ä½¿ç¨ããã¾ãã
ããªãã¡ã仿§æ¸ã§ã¯ãã¡ãã»ã¼ã¸å
ã«åå¨ããå ´åããã®ãããã«ãããã¡ãã»ã¼ã¸ã®å§ç¸®æ¹å¼ããã¡ãã»ã¼ã¸ããã£ã³ã¯åããã¦ãããå¦ãã示ãã¨ãã¦ãã¾ãã
ä¾ãã°ãTransfer-Encoding: gzip, chunked ã¯ãã³ã³ãã³ãã gzip 符å·åã§å§ç¸®ãããå¾ãã¡ãã»ã¼ã¸æ¬ä½ãå½¢æããéã«ãã£ã³ã¯ç¬¦å·åã§ãã£ã³ã¯åããããã¨ã示ãã¾ãã
HEAD ãªã¯ã¨ã¹ãã¸ã®ã¬ã¹ãã³ã¹ã§ã¯ããã®ãããã¼ã¯çç¥å¯è½ã§ãããããã®ã¡ãã»ã¼ã¸ã«ã¯æ¬ä½ããªãããããã£ã¦è»¢éã¨ã³ã³ã¼ãæ¹å¼ãåå¨ããªãããã§ãã
åå¨ããå ´åã対å¿ããã¬ã¹ãã³ã¹ã«é©ç¨ãããå¤ã示ãã¾ããããã¯ããã® GET ã¡ãã»ã¼ã¸ã«å¯¾ããã¬ã¹ãã³ã¹ã§ããããã® GET ãªã¯ã¨ã¹ãã«åªå
ãããTransfer-Encoding ãæå®ããã¦ããªãå ´åã«é©ç¨ããã¾ãã
è¦å:
HTTP/2 ã§ã¯ Transfer-Encoding ãããã¼ã®ä½¿ç¨ããã¹ã¦ç¦æ¢ãã¦ãã¾ãã
HTTP/2 以éã§ã¯ããã£ã³ã¯è»¢éãããå¹ççãªãã¼ã¿ã¹ããªã¼ãã³ã°ã®ä»çµã¿ãæä¾ãã¦ããããã§ãã
HTTP/2 ã§ãã®ãããã¼ã使ç¨ããã¨ãç¹å®ã®ãããã³ã«ã¨ã©ã¼ãçºçããå¯è½æ§ãé«ãã§ãã
| ãããã¼ç¨®å¥ | ãªã¯ã¨ã¹ããããã¼, ã¬ã¹ãã³ã¹ãããã¼, ã³ã³ãã³ããããã¼ |
|---|---|
| ç¦æ¢ãªã¯ã¨ã¹ããããã¼ | ã¯ã |
æ§æ
Transfer-Encoding: chunked
Transfer-Encoding: compress
Transfer-Encoding: deflate
Transfer-Encoding: gzip
// ã«ã³ãã§åºåã£ã¦è¤æ°ã®å¤ã並ã¹ããã¨ãã§ãã¾ã
Transfer-Encoding: gzip, chunked
ãã£ã¬ã¯ãã£ã
chunked-
ãã¼ã¿ã¯ãã£ã³ã¯ï¼å¡ï¼ã®é£ç¶ã§éããã¾ãã ã³ã³ãã³ãã¯ãé·ããåºåããããããã¡ã¼ã®é£ç¶ã¨ãã¦è»¢éãããæªç¥ã®ãµã¤ãºã®ã¹ããªã¼ã ã§éä¿¡å¯è½ã§ãããããéä¿¡è ã¯æ¥ç¶ãéããã¾ã¾ã«ä¿ã¡ãåä¿¡è ãã¡ãã»ã¼ã¸å ¨ä½ãåä¿¡ããæç¹ã§éç¥ãããã¨ãã§ãã¾ãã ãã®å ´åã¯
Content-Lengthãããã¼ãçç¥ããã¾ããããããã®ãã£ã³ã¯ã®å é ã«ç¾å¨ã®ãã£ã³ã¯ã®é·ãã 16 鲿°ã®å½¢å¼ã§è¿½å ãããã®å¾ã§\r\nãç¶ãããã£ã³ã¯èªä½ãããä¸ã¤ã®\r\nãç¶ãã¾ãã æå¾ã®ãã£ã³ã¯ã¯é·ã 0 ã®ãã£ã³ã¯ã§ãã compress-
Lempel-Ziv-Welch (LZW) ã¢ã«ã´ãªãºã ã使ç¨ããå½¢å¼ã§ãããã®å¤ã®ååã¯ãã®ã¢ã«ã´ãªãºã ãå®è£ ãã¦ãã UNIX ã® compress ããã°ã©ã ããæ¡ããã¾ããã ç¹è¨±åé¡ï¼2003 å¹´ã«æéåãï¼ã®å½±é¿ããããå¤ãã® UNIX ãã£ã¹ããªãã¥ã¼ã·ã§ã³ãã compress ããã°ã©ã ãæ¶æ» ããããã«ã仿¥ã§ã¯ãã®ã³ã³ãã³ã符å·åæ¹å¼ã使ç¨ãã¦ãããã©ã¦ã¶ã¼ã¯ã»ã¨ãã©ããã¾ããã
deflate-
zlib æ§é ä½ï¼RFC 1950 ã§å®ç¾©ï¼ã¨ deflate å§ç¸®ã¢ã«ã´ãªãºã ï¼RFC 1951 ã§å®ç¾©ï¼ã使ç¨ãã¾ãã
gzip-
Lempel-Ziv coding (LZ77) 㨠32 ããã CRC ã使ç¨ããå½¢å¼ã§ãã ããã¯å 㯠UNIX ã® gzip ããã°ã©ã ã®å½¢å¼ã§ãã HTTP/1.1 æ¨æºã¯ãäºææ§ã®ããã«ããã®ã³ã³ãã³ã符å·åæ¹å¼ã®å¥åã¨ãã¦
x-gzipãè§£éãããã¨ã«ãµã¼ãã¼ã対å¿ãããã¨ãæ¨å¥¨ãã¦ãã¾ãã
ä¾
>ãã£ã³ã¯åã®ç¬¦å·å
ãã£ã³ã¯åã®ç¬¦å·åã¯ã大éã®ãã¼ã¿ãã¯ã©ã¤ã¢ã³ãã«éãããªã¯ã¨ã¹ããå®äºããã¾ã§ã¬ã¹ãã³ã¹ã®åè¨ã®é·ããåãããªãå ´åã«ä¾¿å©ã§ãã ä¾ãã°ã巨大㪠HTML ã®è¡¨ããã¼ã¿ãã¼ã¹ã®ã¯ã¨ãªã¼ã®çµæã¨ãã¦ä½æãããã大ããªç»åã転éãããããå ´åãªã©ã§ãããã£ã³ã¯åãããã¬ã¹ãã³ã¹ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
7\r\n
Welcome\r\n
1c\r\n
to Mozilla Developer Network\r\n
0\r\n
\r\n
仿§æ¸
| 仿§æ¸ |
|---|
| HTTP/1.1 > # field.transfer-encoding > |