Open
Description
Depending on how you start a connection, the Connection
header may be unexpectedly set to close
Creating a new instance of Net::HTTP
and then calling its request
method (or any of its methods that call request
, eg: get
) will first set the Connection
header to close
(if it's not already set), then start the connection, and re-call itself
Where as initiating a request with class methods, or by manually starting a connection before calling request
will not set the Connection
header
As the default connection in HTTP 1.1 is keep-alive
, having the Connection
header silently set to close
is unexpected
Examples:
uri = URI('https://example.com/test')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri.path)
req['connection'] # => nil
res = http.request(req)
req['connection'] # => 'close'
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.start
req = Net::HTTP::Get.new(uri.path)
req['connection'] # => nil
res = http.request(req)
req['connection'] # => nil
I've created a PR to fix this issue - #179
Metadata
Metadata
Assignees
Labels
No labels