Ruby 2.7.0 リファレンスマニュアル > ライブラリ一覧 > webrick/httpresponseライブラリ > WEBrick::HTTPResponseクラス > content_length

instance method WEBrick::HTTPResponse#content_length

content_length -> Integer | nil[permalink][rdoc]
content_length=(len)

Content-Length ヘッダの値を整数で表すアクセサです。デフォルトは nil です。

body が String オブジェクトである場合

content_length の値が nil のとき Content-Length ヘッダには body のサイズが使われます。nil でないとき body の実際のサイズとこの値が同じかどうかの検証は行われません。

body が IO オブジェクトである場合

content_length の値が nil のとき Content-Length ヘッダはレスポンスに含まれず、IO から全てを読み込んでそれをエンティティボディとします。nil でないとき IO から content_length バイトだけ読み込みそれをエンティティボディとします。

また [RFC2616] 4.4 で定められた Content-Length ヘッダを送ってはいけない場合に当てはまる時には content_length の値は無視され Content-Length ヘッダはレスポンスに含まれません。

[PARAM] len:
ヘッダの値を整数で指定します。nil を指定することは出来ません。
require 'webrick'
include WEBrick
res = HTTPResponse.new( { :HTTPVersion => "1.1" } )
f = File.new('testfile')
res.body = f
res.content_length = 2
print res.to_s

#=> 出力結果
HTTP/1.1 200 OK
Connection: Keep-Alive
Date: Sat, 27 Oct 2007 12:04:32 GMT
Server:
Content-Length: 2

ho