Module: Async::HTTP::Protocol::HTTPS
- Defined in:
- lib/async/http/protocol/https.rb
Overview
A server that supports both HTTP1.0 and HTTP1.1 semantics by detecting the version of the request.
Constant Summary collapse
- HANDLERS =
{ "h2" => HTTP2, "http/1.1" => HTTP11, "http/1.0" => HTTP10, nil => HTTP11, }
Class Method Summary collapse
- .client(peer) ⇒ Object
-
.names ⇒ Object
Supported Application Layer Protocol Negotiation names:.
- .protocol_for(peer) ⇒ Object
- .server(peer) ⇒ Object
Class Method Details
.client(peer) ⇒ Object
55 56 57 |
# File 'lib/async/http/protocol/https.rb', line 55 def self.client(peer) protocol_for(peer).client(peer) end |
.names ⇒ Object
Supported Application Layer Protocol Negotiation names:
64 65 66 |
# File 'lib/async/http/protocol/https.rb', line 64 def self.names HANDLERS.keys.compact end |
.protocol_for(peer) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/async/http/protocol/https.rb', line 42 def self.protocol_for(peer) # alpn_protocol is only available if openssl v1.0.2+ name = peer.alpn_protocol Console.logger.debug(self) {"Negotiating protocol #{name.inspect}..."} if protocol = HANDLERS[name] return protocol else raise ArgumentError, "Could not determine protocol for connection (#{name.inspect})." end end |
.server(peer) ⇒ Object
59 60 61 |
# File 'lib/async/http/protocol/https.rb', line 59 def self.server(peer) protocol_for(peer).server(peer) end |