Module: HTTP2
- Defined in:
- lib/http/2/header/huffman_statemachine.rb,
lib/http/2.rb,
lib/http/2/error.rb,
lib/http/2/base64.rb,
lib/http/2/client.rb,
lib/http/2/framer.rb,
lib/http/2/header.rb,
lib/http/2/server.rb,
lib/http/2/stream.rb,
lib/http/2/emitter.rb,
lib/http/2/version.rb,
lib/http/2/settings.rb,
lib/http/2/connection.rb,
lib/http/2/extensions.rb,
lib/http/2/flow_buffer.rb,
lib/http/2/header/huffman.rb,
lib/http/2/header/compressor.rb,
lib/http/2/header/decompressor.rb,
lib/http/2/header/encoding_context.rb
Overview
The following task generates this file.
rake generate_huffman_table
Defined Under Namespace
Modules: Base64, BufferUtils, Emitter, Error, FlowBuffer, Header, PackingExtensions Classes: Client, Connection, FrameBuffer, Framer, Server, Settings, Stream
Constant Summary collapse
- EMPTY =
[].freeze
- END_STREAM =
Frame flags as defined by the spec (max 255 bits) DATA: ( X X COMPRESSED X PADDED X X END_STREAM ) HEADERS: ( X X PRIORITY X PADDED END_HEADERS X END_STREAM ) PRIORITY: ( X X X X X X X X ) RST_STREAM: ( X X X X X X X X ) SETTINGS: ( X X X X X X X ACK ) PUSH_PROMISE: ( X X X X PADDED END_HEADERS X X ) PING: ( X X X X X X X ACK ) GOAWAY: ( X X X X X X X X ) WINDOW_UPDATE: ( X X X X X X X X ) CONTINUATION: ( X X X X X END_HEADERS X X ) ALTSVC: ( X X X X X X X X ) ORIGIN: ( RESERVED4 X X RESERVED3 X RESERVED2 RESERVED X )
ACK = 0b0001
- RESERVED =
1
0b0010- END_HEADERS =
2
0b0100- PADDED =
4
0b1000- PRIORITY =
8
0b0010_0000- VERSION =
"1.2.0"- SPEC_DEFAULT_CONNECTION_SETTINGS =
Default values for SETTINGS frame, as defined by the spec.
{ settings_header_table_size: 4096, settings_enable_push: 1, # enabled for servers settings_max_concurrent_streams: Framer::MAX_STREAM_ID, # unlimited settings_initial_window_size: 65_535, settings_max_frame_size: 16_384, settings_max_header_list_size: (2 << 30) - 1 # unlimited }.freeze
- DEFAULT_FLOW_WINDOW =
Default connection and stream flow control window (64KB).
65_535- DEFAULT_HEADER_SIZE =
Default header table size
4096- DEFAULT_MAX_CONCURRENT_STREAMS =
Default stream_limit
100- DEFAULT_CONNECTION_SETTINGS =
{ settings_header_table_size: 4096, settings_enable_push: 1, # enabled for servers settings_max_concurrent_streams: 100, settings_initial_window_size: 65_535, settings_max_frame_size: 16_384, settings_max_header_list_size: (2 << 30) - 1 # unlimited }.freeze
- DEFAULT_WEIGHT =
Default stream priority (lower values are higher priority).
16- CONNECTION_PREFACE_MAGIC =
Default connection “fast-fail” preamble string as defined by the spec.
"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"- REQUEST_MANDATORY_HEADERS =
%w[:scheme :method :authority :path].freeze
- RESPONSE_MANDATORY_HEADERS =
%w[:status].freeze
- CONNECTION_FRAME_TYPES =
%i[settings ping goaway].freeze
- STREAM_OPEN_STATES =
%i[open half_closed_local].freeze
Instance Method Summary collapse
Instance Method Details
#urlsafe_decode64(str) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/http/2/base64.rb', line 35 def urlsafe_decode64(str) if !str.end_with?("=") && str.length % 4 != 0 str = str.ljust((str.length + 3) & ~3, "=") str.tr!("-_", "+/") else str = str.tr("-_", "+/") end strict_decode64(str) end |