-
Notifications
You must be signed in to change notification settings - Fork 80
Closed
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'] # => nilI've created a PR to fix this issue - #179
aeuillot
Metadata
Metadata
Assignees
Labels
No labels