Using a Reflector, this is what the TryAddWithoutValidation method does :
if (!this.TryCheckHeaderName(name))
{
return false;
}
if (value == null)
{
value = string.Empty;
}
AddValue(this.GetOrCreateHeaderInfo(name, false), value, StoreLocation.Raw);
return true;
Work takes place inside the function TryCheckHeaderName().
, RFC HTTP ( ..), .
:
bool TryCheckHeaderName(string name)
{
if (string.IsNullOrEmpty(name))
{
return false;
}
if (HttpRuleParser.GetTokenLength(name, 0) != name.Length)
{
return false;
}
if ((this.invalidHeaders != null) && this.invalidHeaders.Contains(name))
{
return false;
}
return true;
}
( ), , TryCheckHeaderName.