@UnstableApi
public final class Http2CodecUtil
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static long |
calculateMaxHeaderListSizeGoAway(long maxHeaderListSize)
计算以字节为单位的阈值,如果一组标题超过这个数量,应该触发
GO_AWAY 。
|
static ByteBuf |
connectionPrefaceBuf()
返回包含
CONNECTION_PREFACE 的缓冲区。
|
static ByteBuf |
emptyPingBuf()
返回填充了全部零的缓冲区,这是PING帧的适当长度。
|
static Http2Exception |
getEmbeddedHttp2Exception(java.lang.Throwable cause)
通过因果关系链迭代查找给定的异常,并返回第一个 Http2Exception 或null 如果没有)。
|
static void |
headerListSizeExceeded(int streamId, long maxHeaderListSize, boolean onDecode)
|
static void |
headerListSizeExceeded(long maxHeaderListSize)
由于以不可恢复的方式违反
SETTINGS_MAX_HEADER_LIST_SIZE ,因此发送GO_AWAY结果。
|
static boolean |
isMaxFrameSizeValid(int maxFrameSize)
指示最大帧大小的给定值是否落在有效范围内。
|
static boolean |
isOutboundStream(boolean server, int streamId)
如果流是出站流,则返回
true 。
|
static boolean |
isStreamIdValid(int streamId)
如果
streamId 是有效的HTTP / 2流标识符,则返回true。
|
static int |
readUnsignedInt(ByteBuf buf)
从缓冲区读取一个大端(31位)整数。
|
static int |
streamableBytes(StreamByteDistributor.StreamState state)
计算可由
state 发送的字节
state 。
|
static ByteBuf |
toByteBuf(ChannelHandlerContext ctx, java.lang.Throwable cause)
创建一个包含来自给定异常的错误消息的缓冲区。
|
static void |
verifyPadding(int padding) |
static void |
writeFrameHeader(ByteBuf out, int payloadLength, byte type, Http2Flags flags, int streamId)
将HTTP / 2帧头写入输出缓冲区。
|
public static final int CONNECTION_STREAM_ID
public static final int HTTP_UPGRADE_STREAM_ID
public static final java.lang.CharSequence HTTP_UPGRADE_SETTINGS_HEADER
public static final java.lang.CharSequence HTTP_UPGRADE_PROTOCOL_NAME
public static final java.lang.CharSequence TLS_UPGRADE_PROTOCOL_NAME
public static final int PING_FRAME_PAYLOAD_LENGTH
public static final short MAX_UNSIGNED_BYTE
public static final int MAX_PADDING
public static final long MAX_UNSIGNED_INT
public static final int FRAME_HEADER_LENGTH
public static final int SETTING_ENTRY_LENGTH
public static final int PRIORITY_ENTRY_LENGTH
public static final int INT_FIELD_LENGTH
public static final short MAX_WEIGHT
public static final short MIN_WEIGHT
public static final int DATA_FRAME_HEADER_LENGTH
public static final int HEADERS_FRAME_HEADER_LENGTH
public static final int PRIORITY_FRAME_LENGTH
public static final int RST_STREAM_FRAME_LENGTH
public static final int PUSH_PROMISE_FRAME_HEADER_LENGTH
public static final int GO_AWAY_FRAME_HEADER_LENGTH
public static final int WINDOW_UPDATE_FRAME_LENGTH
public static final int CONTINUATION_FRAME_HEADER_LENGTH
public static final char SETTINGS_HEADER_TABLE_SIZE
public static final char SETTINGS_ENABLE_PUSH
public static final char SETTINGS_MAX_CONCURRENT_STREAMS
public static final char SETTINGS_INITIAL_WINDOW_SIZE
public static final char SETTINGS_MAX_FRAME_SIZE
public static final char SETTINGS_MAX_HEADER_LIST_SIZE
public static final int NUM_STANDARD_SETTINGS
public static final long MAX_HEADER_TABLE_SIZE
public static final long MAX_CONCURRENT_STREAMS
public static final int MAX_INITIAL_WINDOW_SIZE
public static final int MAX_FRAME_SIZE_LOWER_BOUND
public static final int MAX_FRAME_SIZE_UPPER_BOUND
public static final long MAX_HEADER_LIST_SIZE
public static final long MIN_HEADER_TABLE_SIZE
public static final long MIN_CONCURRENT_STREAMS
public static final int MIN_INITIAL_WINDOW_SIZE
public static final long MIN_HEADER_LIST_SIZE
public static final int DEFAULT_WINDOW_SIZE
public static final short DEFAULT_PRIORITY_WEIGHT
public static final int DEFAULT_HEADER_TABLE_SIZE
public static final long DEFAULT_HEADER_LIST_SIZE
对于任何给定的请求,可能会强制实施一个比所宣传的更低的限制。漏洞。
public static final int DEFAULT_MAX_FRAME_SIZE
public static final int SMALLEST_MAX_CONCURRENT_STREAMS
SETTINGS_MAX_CONCURRENT_STREAMS
推荐的假设最小值
SETTINGS_MAX_CONCURRENT_STREAMS 。
public static final long DEFAULT_GRACEFUL_SHUTDOWN_TIMEOUT_MILLIS
public static long calculateMaxHeaderListSizeGoAway(long maxHeaderListSize)
GO_AWAY
字节的阈值,如果一组标题超过了这个数量。
maxHeaderListSize
-
SETTINGS_MAX_HEADER_LIST_SIZE为本地端点。
GO_AWAY
。
public static boolean isOutboundStream(boolean server, int streamId)
true
。
server
-
true
如果端点是服务器,
false
否则。
streamId
- 流标识符
public static boolean isStreamIdValid(int streamId)
streamId
是有效的HTTP / 2流标识符,则返回true。
public static boolean isMaxFrameSizeValid(int maxFrameSize)
public static ByteBuf connectionPrefaceBuf()
CONNECTION_PREFACE
的缓冲区。
public static ByteBuf emptyPingBuf()
public static Http2Exception getEmbeddedHttp2Exception(java.lang.Throwable cause)
Http2Exception
或null
如果没有)。
public static ByteBuf toByteBuf(ChannelHandlerContext ctx, java.lang.Throwable cause)
null
返回一个空的缓冲区。
public static int readUnsignedInt(ByteBuf buf)
public static void writeFrameHeader(ByteBuf out, int payloadLength, byte type, Http2Flags flags, int streamId)
public static int streamableBytes(StreamByteDistributor.StreamState state)
state
发送的字节state
。
下限是0
。
public static void headerListSizeExceeded(int streamId, long maxHeaderListSize, boolean onDecode) throws Http2Exception
streamId
- 发生特殊情况时正在处理的流ID。
maxHeaderListSize
- 已超出的字节列表的最大允许大小。
onDecode
- true
如果解码器遇到异常。
false
用于编码。
Http2Exception
- 流错误。
public static void headerListSizeExceeded(long maxHeaderListSize) throws Http2Exception
maxHeaderListSize
- 已超过的字节列表的最大允许大小。
Http2Exception
- 连接错误。
public static void verifyPadding(int padding)
Copyright © 2008–2018 The Netty Project. All rights reserved.