source/docs/header_map.md
The Envoy header map implementation (HeaderMapImpl) has the following properties:
HeaderList) in the order they are added, with pseudo
headers kept at the front of the list.HeaderLazyMap), in addition to the linked list, for faster access to the headers.DEFINE_INLINE_HEADER and CustomInlineHeaderBase) they use direct pointer access to see
whether a header is present, add it, modify it, etc. When headers are added by name a trie is used to lookup the pointer in the table (StaticLookupTable).CustomInlineHeaderRegistry). Each registered header increases the size of the table by the size of a single pointer.CustomInlineHeaderBase
class.getAllHeaderMapImplInfo is called), the
StaticLookupTable is finalized for each header map type. No further changes are possible after
this point. The StaticLookupTable defines the amount of variable pointer table space that is
require for each header map type.InlineStorage with a variable length member at the
end of the definition.inlineHeadersSize function.