pub fn https_get_binary_keepalive(
host: &str,
paths: &[String],
) -> Result<Vec<Option<Vec<u8>>>, &'static str>Expand description
レスポンスヘッダからContent-Length(10進)を読み取る。無ければNone。
同一ホストの複数パスを 1 本の接続・1 回のハンドシェイクで取得する。
§なぜ要るのか
【2026-08-05 実測】1 ページの読み込みで
DNS=67/15 TCP接続=204/14 TLS握手=4118/14。
ハンドシェイクだけで 4118 tick(約 41 秒)、1 回あたり約 294 tick。
DNS も TCP 接続も軽いので、重いのは TLS 交渉そのもの。
同じホストへ毎回張り直しているのが原因。
§応答の切れ目
keep-alive では接続が閉じないので、どこで 1 応答が終わるかを
自分で決める必要がある。Content-Length を見て、その分だけ読む。
見つからない応答(chunked 等)が来たらそこで打ち切り、
残りは呼び出し元が個別取得へ切り替えられるよう None を返す。
§戻り値
paths と同じ長さ。取れなかったものは None。
途中で接続が壊れたら、それ以降は全部 None(呼び出し元が再取得する)。