105 instantiations of HeaderDescriptor
System.Net.Http (105)
System\Net\Http\Headers\HeaderDescriptor.cs (5)
68
descriptor = new
HeaderDescriptor
(knownHeader);
78
descriptor = new
HeaderDescriptor
(headerName);
90
descriptor = new
HeaderDescriptor
(knownHeader);
100
descriptor = new
HeaderDescriptor
(HttpRuleParser.GetTokenString(headerName));
131
return new
HeaderDescriptor
(Name, customHeader: true);
System\Net\Http\Headers\KnownHeader.cs (1)
46
public HeaderDescriptor Descriptor => new
HeaderDescriptor
(this);
System\Net\Http\Headers\QPackStaticTable.cs (99)
12
(new
HeaderDescriptor
(":authority"), ""), // 0
13
(new
HeaderDescriptor
(":path"), "/"), // 1
14
(new
HeaderDescriptor
(KnownHeaders.Age), "0"), // 2
15
(new
HeaderDescriptor
(KnownHeaders.ContentDisposition), ""), // 3
16
(new
HeaderDescriptor
(KnownHeaders.ContentLength), "0"), // 4
17
(new
HeaderDescriptor
(KnownHeaders.Cookie), ""), // 5
18
(new
HeaderDescriptor
(KnownHeaders.Date), ""), // 6
19
(new
HeaderDescriptor
(KnownHeaders.ETag), ""), // 7
20
(new
HeaderDescriptor
(KnownHeaders.IfModifiedSince), ""), // 8
21
(new
HeaderDescriptor
(KnownHeaders.IfNoneMatch), ""), // 9
22
(new
HeaderDescriptor
(KnownHeaders.LastModified), ""), // 10
23
(new
HeaderDescriptor
(KnownHeaders.Link), ""), // 11
24
(new
HeaderDescriptor
(KnownHeaders.Location), ""), // 12
25
(new
HeaderDescriptor
(KnownHeaders.Referer), ""), // 13
26
(new
HeaderDescriptor
(KnownHeaders.SetCookie), ""), // 14
27
(new
HeaderDescriptor
(":method"), "CONNECT"), // 15
28
(new
HeaderDescriptor
(":method"), "DELETE"), // 16
29
(new
HeaderDescriptor
(":method"), "GET"), // 17
30
(new
HeaderDescriptor
(":method"), "HEAD"), // 18
31
(new
HeaderDescriptor
(":method"), "OPTIONS"), // 19
32
(new
HeaderDescriptor
(":method"), "POST"), // 20
33
(new
HeaderDescriptor
(":method"), "PUT"), // 21
34
(new
HeaderDescriptor
(":scheme"), "http"), // 22
35
(new
HeaderDescriptor
(":scheme"), "https"), // 23
36
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "103"), // 24
37
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "200"), // 25
38
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "304"), // 26
39
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "404"), // 27
40
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "503"), // 28
41
(new
HeaderDescriptor
(KnownHeaders.Accept), "*/*"), // 29
42
(new
HeaderDescriptor
(KnownHeaders.Accept), "application/dns-message"), // 30
43
(new
HeaderDescriptor
(KnownHeaders.AcceptEncoding), "gzip, deflate, br"), // 31
44
(new
HeaderDescriptor
(KnownHeaders.AcceptRanges), "bytes"), // 32
45
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowHeaders), "cache-control"), // 33
46
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowHeaders), "content-type"), // 34
47
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowOrigin), "*"), // 35
48
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "max-age=0"), // 36
49
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "max-age=2592000"), // 37
50
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "max-age=604800"), // 38
51
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "no-cache"), // 39
52
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "no-store"), // 40
53
(new
HeaderDescriptor
(KnownHeaders.CacheControl), "public, max-age=31536000"), // 41
54
(new
HeaderDescriptor
(KnownHeaders.ContentEncoding), "br"), // 42
55
(new
HeaderDescriptor
(KnownHeaders.ContentEncoding), "gzip"), // 43
56
(new
HeaderDescriptor
(KnownHeaders.ContentType), "application/dns-message"), // 44
57
(new
HeaderDescriptor
(KnownHeaders.ContentType), "application/javascript"), // 45
58
(new
HeaderDescriptor
(KnownHeaders.ContentType), "application/json"), // 46
59
(new
HeaderDescriptor
(KnownHeaders.ContentType), "application/x-www-form-urlencoded"), // 47
60
(new
HeaderDescriptor
(KnownHeaders.ContentType), "image/gif"), // 48
61
(new
HeaderDescriptor
(KnownHeaders.ContentType), "image/jpeg"), // 49
62
(new
HeaderDescriptor
(KnownHeaders.ContentType), "image/png"), // 50
63
(new
HeaderDescriptor
(KnownHeaders.ContentType), "text/css"), // 51
64
(new
HeaderDescriptor
(KnownHeaders.ContentType), "text/html; charset=utf-8"), // 52; Whitespace is correct, see spec.
65
(new
HeaderDescriptor
(KnownHeaders.ContentType), "text/plain"), // 53
66
(new
HeaderDescriptor
(KnownHeaders.ContentType), "text/plain;charset=utf-8"), // 54; Whitespace is correct, see spec.
67
(new
HeaderDescriptor
(KnownHeaders.Range), "bytes=0-"), // 55
68
(new
HeaderDescriptor
(KnownHeaders.StrictTransportSecurity), "max-age=31536000"), // 56
69
(new
HeaderDescriptor
(KnownHeaders.StrictTransportSecurity), "max-age=31536000; includesubdomains"), // 57
70
(new
HeaderDescriptor
(KnownHeaders.StrictTransportSecurity), "max-age=31536000; includesubdomains; preload"), // 58
71
(new
HeaderDescriptor
(KnownHeaders.Vary), "accept-encoding"), // 59
72
(new
HeaderDescriptor
(KnownHeaders.Vary), "origin"), // 60
73
(new
HeaderDescriptor
(KnownHeaders.XContentTypeOptions), "nosniff"), // 61
74
(new
HeaderDescriptor
(KnownHeaders.XXssProtection), "1; mode=block"), // 62
75
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "100"), // 63
76
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "204"), // 64
77
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "206"), // 65
78
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "302"), // 66
79
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "400"), // 67
80
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "403"), // 68
81
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "421"), // 69
82
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "425"), // 70
83
(new
HeaderDescriptor
(KnownHeaders.PseudoStatus), "500"), // 71
84
(new
HeaderDescriptor
(KnownHeaders.AcceptLanguage), ""), // 72
85
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowCredentials), "FALSE"), // 73
86
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowCredentials), "TRUE"), // 74
87
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowHeaders), "*"), // 75
88
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowMethods), "get"), // 76
89
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowMethods), "get, post, options"), // 77
90
(new
HeaderDescriptor
(KnownHeaders.AccessControlAllowMethods), "options"), // 78
91
(new
HeaderDescriptor
(KnownHeaders.AccessControlExposeHeaders), "content-length"), // 79
92
(new
HeaderDescriptor
("access-control-request-headers"), "content-type"), // 80
93
(new
HeaderDescriptor
("access-control-request-method"), "get"), // 81
94
(new
HeaderDescriptor
("access-control-request-method"), "post"), // 82
95
(new
HeaderDescriptor
(KnownHeaders.AltSvc), "clear"), // 83
96
(new
HeaderDescriptor
(KnownHeaders.Authorization), ""), // 84
97
(new
HeaderDescriptor
(KnownHeaders.ContentSecurityPolicy), "script-src 'none'; object-src 'none'; base-uri 'none'"), // 85
98
(new
HeaderDescriptor
("early-data"), "1"), // 86
99
(new
HeaderDescriptor
(KnownHeaders.ExpectCT), ""), // 87
100
(new
HeaderDescriptor
("forwarded"), ""), // 88
101
(new
HeaderDescriptor
(KnownHeaders.IfRange), ""), // 89
102
(new
HeaderDescriptor
(KnownHeaders.Origin), ""), // 90
103
(new
HeaderDescriptor
("purpose"), "prefetch"), // 91
104
(new
HeaderDescriptor
(KnownHeaders.Server), ""), // 92
105
(new
HeaderDescriptor
(KnownHeaders.TimingAllowOrigin), "*"), // 93
106
(new
HeaderDescriptor
(KnownHeaders.UpgradeInsecureRequests), "1"), // 94
107
(new
HeaderDescriptor
(KnownHeaders.UserAgent), ""), // 95
108
(new
HeaderDescriptor
("x-forwarded-for"), ""), // 96
109
(new
HeaderDescriptor
(KnownHeaders.XFrameOptions), "deny"), // 97
110
(new
HeaderDescriptor
(KnownHeaders.XFrameOptions), "sameorigin") // 98
106 references to HeaderDescriptor
System.Net.Http (106)
System\Net\Http\DiagnosticsHandler.cs (7)
23
private readonly
HeaderDescriptor
[]? _propagatorFields;
38
var fieldDescriptors = new List<
HeaderDescriptor
>(fields.Count);
41
if (field is not null &&
HeaderDescriptor
.TryGet(field, out
HeaderDescriptor
descriptor))
100
if (request.WasPropagatorStateInjectedByDiagnosticsHandler() && _propagatorFields is
HeaderDescriptor
[] fields)
102
foreach (
HeaderDescriptor
field in fields)
361
HeaderDescriptor
descriptor = request.Headers.GetHeaderDescriptor(key);
System\Net\Http\Headers\HeaderDescriptor.cs (9)
16
internal readonly struct HeaderDescriptor : IEquatable<
HeaderDescriptor
>
44
public bool Equals(
HeaderDescriptor
other)
61
public static bool TryGet(string headerName, out
HeaderDescriptor
descriptor)
74
descriptor = default(
HeaderDescriptor
);
83
public static bool TryGet(ReadOnlySpan<byte> headerName, out
HeaderDescriptor
descriptor)
96
descriptor = default(
HeaderDescriptor
);
104
internal static bool TryGetStaticQPackHeader(int index, out
HeaderDescriptor
descriptor, [NotNullWhen(true)] out string? knownValue)
109
(
HeaderDescriptor
descriptor, string value)[] qpackStaticTable = QPackStaticTable.HeaderLookup;
127
public
HeaderDescriptor
AsCustomHeader()
System\Net\Http\Headers\HeaderStringValues.cs (3)
13
private readonly
HeaderDescriptor
_header;
20
internal HeaderStringValues(
HeaderDescriptor
descriptor, string value)
29
internal HeaderStringValues(
HeaderDescriptor
descriptor, string[] values)
System\Net\Http\Headers\HeaderUtilities.cs (2)
273
internal static DateTimeOffset? GetDateTimeOffsetValue(
HeaderDescriptor
descriptor, HttpHeaders store, DateTimeOffset? defaultValue = null)
290
internal static TimeSpan? GetTimeSpanValue(
HeaderDescriptor
descriptor, HttpHeaders store)
System\Net\Http\Headers\HttpHeaders.cs (55)
21
public
HeaderDescriptor
Key;
24
public HeaderEntry(
HeaderDescriptor
key, object value)
53
/// <summary>Either a <see cref="HeaderEntry"/> array or a Dictionary<<see cref="
HeaderDescriptor
"/>, <see cref="object"/>> </summary>
79
internal void Add(
HeaderDescriptor
descriptor, string? value)
108
internal void Add(
HeaderDescriptor
descriptor, IEnumerable<string?> values)
161
TryGetHeaderDescriptor(name, out
HeaderDescriptor
descriptor) &&
164
internal bool TryAddWithoutValidation(
HeaderDescriptor
descriptor, string? value)
195
TryGetHeaderDescriptor(name, out
HeaderDescriptor
descriptor) &&
198
internal bool TryAddWithoutValidation(
HeaderDescriptor
descriptor, IEnumerable<string?> values)
262
internal IEnumerable<string> GetValues(
HeaderDescriptor
descriptor)
274
if (TryGetHeaderDescriptor(name, out
HeaderDescriptor
descriptor))
283
internal bool TryGetValues(
HeaderDescriptor
descriptor, [NotNullWhen(true)] out IEnumerable<string>? values)
364
internal string GetHeaderString(
HeaderDescriptor
descriptor)
417
: ref CollectionsMarshal.GetValueRefOrNullRef((Dictionary<
HeaderDescriptor
, object>)_headerStore, entry.Key);
440
internal void AddParsedValue(
HeaderDescriptor
descriptor, object value)
454
internal void SetParsedValue(
HeaderDescriptor
descriptor, object value)
469
internal void SetOrRemoveParsedValue(
HeaderDescriptor
descriptor, object? value)
483
internal bool RemoveParsedValue(
HeaderDescriptor
descriptor, object value)
561
internal bool ContainsParsedValue(
HeaderDescriptor
descriptor, object value)
667
private static HeaderStoreItemInfo CloneHeaderInfo(
HeaderDescriptor
descriptor, HeaderStoreItemInfo sourceInfo)
743
private HeaderStoreItemInfo GetOrCreateHeaderInfo(
HeaderDescriptor
descriptor)
755
private HeaderStoreItemInfo CreateAndAddHeaderToStore(
HeaderDescriptor
descriptor)
770
internal bool TryGetHeaderValue(
HeaderDescriptor
descriptor, [NotNullWhen(true)] out object? value)
785
private bool TryGetAndParseHeaderInfo(
HeaderDescriptor
key, [NotNullWhen(true)] out HeaderStoreItemInfo? info)
829
private static void ParseRawHeaderValues(
HeaderDescriptor
descriptor, HeaderStoreItemInfo info)
859
private static void ParseSingleRawHeaderValue(HeaderStoreItemInfo info,
HeaderDescriptor
descriptor, string rawValue)
884
internal bool TryParseAndAddValue(
HeaderDescriptor
descriptor, string? value)
908
private static bool TryParseAndAddRawHeaderValue(
HeaderDescriptor
descriptor, HeaderStoreItemInfo info, string? value, bool addWhenInvalid)
1038
internal object? GetSingleParsedValue(
HeaderDescriptor
descriptor)
1048
internal object? GetParsedAndInvalidValues(
HeaderDescriptor
descriptor)
1058
internal virtual bool IsAllowedHeaderName(
HeaderDescriptor
descriptor) => true;
1060
private void CheckIsAllowedHeaderName(
HeaderDescriptor
descriptor)
1068
private void PrepareHeaderInfoForAdd(
HeaderDescriptor
descriptor, out HeaderStoreItemInfo info, out bool addToStore)
1080
private static void ParseAndAddValue(
HeaderDescriptor
descriptor, HeaderStoreItemInfo info, string? value)
1134
internal
HeaderDescriptor
GetHeaderDescriptor(string name)
1138
if (!
HeaderDescriptor
.TryGet(name, out
HeaderDescriptor
descriptor))
1155
internal bool TryGetHeaderDescriptor(string name, out
HeaderDescriptor
descriptor)
1163
if (
HeaderDescriptor
.TryGet(name, out descriptor))
1195
internal static string[] GetStoreValuesAsStringArray(
HeaderDescriptor
descriptor, HeaderStoreItemInfo info)
1202
internal static void GetStoreValuesAsStringOrStringArray(
HeaderDescriptor
descriptor, object sourceValues, out string? singleValue, out string[]? multiValue)
1238
internal static int GetStoreValuesIntoStringArray(
HeaderDescriptor
descriptor, object sourceValues, [NotNull] ref string[]? values)
1448
var dictionary = (Dictionary<
HeaderDescriptor
, object>)_headerStore!;
1451
foreach (KeyValuePair<
HeaderDescriptor
, object> entry in dictionary)
1472
private ref object GetValueRefOrNullRef(
HeaderDescriptor
key)
1490
valueRef = ref CollectionsMarshal.GetValueRefOrNullRef((Dictionary<
HeaderDescriptor
, object>)store, key);
1496
private ref object? GetValueRefOrAddDefault(
HeaderDescriptor
key)
1533
ref object? GrowEntriesAndAddDefault(
HeaderDescriptor
key)
1550
ref object? ConvertToDictionaryAndAddDefault(
HeaderDescriptor
key)
1553
var dictionary = new Dictionary<
HeaderDescriptor
, object>(ArrayThreshold);
1563
ref object? DictionaryGetValueRefOrAddDefault(
HeaderDescriptor
key)
1565
var dictionary = (Dictionary<
HeaderDescriptor
, object>)_headerStore!;
1593
internal bool Contains(
HeaderDescriptor
key)
1611
internal bool Remove(
HeaderDescriptor
key)
1635
removed = ((Dictionary<
HeaderDescriptor
, object>)store).Remove(key);
System\Net\Http\Headers\HttpHeadersNonValidated.cs (2)
35
headers.TryGetHeaderDescriptor(headerName, out
HeaderDescriptor
descriptor) &&
65
headers.TryGetHeaderDescriptor(headerName, out
HeaderDescriptor
descriptor) &&
System\Net\Http\Headers\HttpHeaderValueCollection.cs (2)
35
private readonly
HeaderDescriptor
_descriptor;
48
internal HttpHeaderValueCollection(
HeaderDescriptor
descriptor, HttpHeaders store)
System\Net\Http\Headers\HttpResponseHeaders.cs (1)
158
internal override bool IsAllowedHeaderName(
HeaderDescriptor
descriptor)
System\Net\Http\Headers\KnownHeader.cs (1)
46
public
HeaderDescriptor
Descriptor => new HeaderDescriptor(this);
System\Net\Http\Headers\QPackStaticTable.cs (2)
10
internal static (
HeaderDescriptor
descriptor, string value)[] HeaderLookup { get; } = new (
HeaderDescriptor
descriptor, string value)[]
System\Net\Http\SocketsHttpHandler\Http2Stream.cs (7)
502
private static readonly (
HeaderDescriptor
descriptor, byte[] value)[] s_hpackStaticHeaderTable = new (
HeaderDescriptor
, byte[])[LastHPackNormalHeaderId - FirstHPackNormalHeaderId + 1]
570
(
HeaderDescriptor
descriptor, byte[] value) = s_hpackStaticHeaderTable[index - FirstHPackNormalHeaderId];
593
(
HeaderDescriptor
descriptor, _) = s_hpackStaticHeaderTable[index - FirstHPackNormalHeaderId];
677
private void OnHeader(
HeaderDescriptor
descriptor, ReadOnlySpan<byte> value)
751
if (!
HeaderDescriptor
.TryGet(name, out
HeaderDescriptor
descriptor))
System\Net\Http\SocketsHttpHandler\Http3RequestStream.cs (10)
49
private List<(
HeaderDescriptor
name, string value)>? _trailingHeaders;
635
_trailingHeaders = new List<(
HeaderDescriptor
name, string value)>();
656
foreach ((
HeaderDescriptor
name, string value) in _trailingHeaders)
1008
if (!
HeaderDescriptor
.TryGet(name, out
HeaderDescriptor
descriptor))
1018
GetStaticQPackHeader(index, out
HeaderDescriptor
descriptor, out string? knownValue);
1024
GetStaticQPackHeader(index, out
HeaderDescriptor
descriptor, knownValue: out _);
1033
private void GetStaticQPackHeader(int index, out
HeaderDescriptor
descriptor, out string? knownValue)
1035
if (!
HeaderDescriptor
.TryGetStaticQPackHeader(index, out descriptor, out knownValue))
1047
private void OnHeader(int? staticIndex,
HeaderDescriptor
descriptor, string? staticValue, ReadOnlySpan<byte> literalValue)
System\Net\Http\SocketsHttpHandler\HttpConnection.cs (2)
1273
if (!
HeaderDescriptor
.TryGet(name, out
HeaderDescriptor
descriptor))
System\Net\Http\SocketsHttpHandler\HttpConnectionBase.cs (3)
129
/// <summary>Uses <see cref="
HeaderDescriptor
.GetHeaderValue"/>, but first special-cases several known headers for which we can use caching.</summary>
130
public string GetResponseHeaderValueWithCaching(
HeaderDescriptor
descriptor, ReadOnlySpan<byte> value, Encoding? valueEncoding)
137
static string GetOrAddCachedValue([NotNull] ref string? cache,
HeaderDescriptor
descriptor, ReadOnlySpan<byte> value, Encoding? encoding)