351 words
2 min

HTMLのscriptタグを書く位置について

この記事は公開日から1年以上が経過しています。

前提#

HTTP/1.1では使用されるが HTTP/2以降のプロトコルでは廃止されているので注意

そもそもChunk転送(チャンク転送)とは何者?#

**Chunk転送(チャンク転送)**は、HTTP/1.1で導入されたデータ転送方式のひとつ。 サーバーがレスポンスのコンテンツ長を事前に決定できない場合や、 ストリーミングデータのように順次データを送りたい場合に使われるもの。

特に サーバーがコンテンツ長を事前に決めなくても送信できるので ストリーミングや動的コンテンツ生成に便利


基本概念#

通常、HTTPレスポンスのヘッダにはContent-Lengthが含まれます。これにより、ブラウザやクライアントはレスポンスボディの終了位置を知ることができます。

しかし、以下のような場合にはContent-Lengthを指定するのが難しいです。

✅ 動的に生成されるコンテンツ
✅ ストリーミング形式でのレスポンス

このようなケースで役立つのがチャンク転送エンコーディングです!


仕組み#

チャンク転送では、以下のようにデータを**チャンク(塊)**に分けて送信します。

  • 各チャンクの先頭にチャンクサイズ(16進数)を記載
  • チャンクサイズの後に改行(CRLF)
  • チャンクのデータ本体
  • チャンクの末尾にも改行(CRLF)

チャンク転送の終わりは、サイズ0のチャンクを送信することで示されます。


#

以下はチャンク転送のサンプルです。

HTTP/1.1 200 OK
Transfer-Encoding: chunked

4\r\n
Wiki\r\n
5\r\n
pedia\r\n
E\r\n
 in\r\n
\r\n
chunks.\r\n
0\r\n
\r\n
HTMLのscriptタグを書く位置について
https://storia-blog.pages.dev/blogs/http_chunk
作者
Storia
公開日
2024-06-06