class Connection
Represents the connection
HTTP header, which controls options for the current connection.
The connection
header is used to specify control options such as whether the connection should be kept alive, closed, or upgraded to a different protocol.
Definitions
KEEP_ALIVE = "keep-alive"
¶
The keep-alive
directive indicates that the connection should remain open for future requests or responses, avoiding the overhead of opening a new connection.
CLOSE = "close"
¶
The close
directive indicates that the connection should be closed after the current request and response are complete.
UPGRADE = "upgrade"
¶
The upgrade
directive indicates that the connection should be upgraded to a different protocol, as specified in the Upgrade
header.
def initialize(value = nil)
¶
Initializes the connection header with the given value. The value is expected to be a comma-separated string of directives.
Signature
-
parameter
value
String | Nil
the raw
connection
header value.
Implementation
def initialize(value = nil)
super(value&.downcase)
end
def << value
¶
Adds a directive to the connection
header. The value will be normalized to lowercase before being added.
Signature
-
parameter
value
String
the directive to add.
Implementation
def << value
super(value.downcase)
end
def keep_alive?
¶
Signature
-
returns
Boolean
whether the
keep-alive
directive is present and the connection is not marked for closure with theclose
directive.
Implementation
def keep_alive?
self.include?(KEEP_ALIVE) && !close?
end
def close?
¶
Signature
-
returns
Boolean
whether the
close
directive is present, indicating that the connection should be closed after the current request and response.
Implementation
def close?
self.include?(CLOSE)
end
def upgrade?
¶
Signature
-
returns
Boolean
whether the
upgrade
directive is present, indicating that the connection should be upgraded to a different protocol.
Implementation
def upgrade?
self.include?(UPGRADE)
end