static WebHeaderCollection ()
{
// the list of restricted header names as defined
// by the ms.net spec
restricted = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
CaseInsensitiveComparer.DefaultInvariant);
restricted.Add ("accept", true);
restricted.Add ("connection", true);
restricted.Add ("content-length", true);
restricted.Add ("content-type", true);
restricted.Add ("date", true);
restricted.Add ("expect", true);
restricted.Add ("host", true);
restricted.Add ("if-modified-since", true);
restricted.Add ("range", true);
restricted.Add ("referer", true);
restricted.Add ("transfer-encoding", true);
restricted.Add ("user-agent", true);
restricted.Add ("proxy-connection", true);
//
restricted_response = new Dictionary<string, bool> (StringComparer.InvariantCultureIgnoreCase);
restricted_response.Add ("Content-Length", true);
restricted_response.Add ("Transfer-Encoding", true);
restricted_response.Add ("WWW-Authenticate", true);
// see par 14 of RFC 2068 to see which header names
// accept multiple values each separated by a comma
multiValue = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
CaseInsensitiveComparer.DefaultInvariant);
multiValue.Add ("accept", true);
multiValue.Add ("accept-charset", true);
multiValue.Add ("accept-encoding", true);
multiValue.Add ("accept-language", true);
multiValue.Add ("accept-ranges", true);
multiValue.Add ("allow", true);
multiValue.Add ("authorization", true);
multiValue.Add ("cache-control", true);
multiValue.Add ("connection", true);
multiValue.Add ("content-encoding", true);
multiValue.Add ("content-language", true);
multiValue.Add ("expect", true);
multiValue.Add ("if-match", true);
multiValue.Add ("if-none-match", true);
multiValue.Add ("proxy-authenticate", true);
multiValue.Add ("public", true);
multiValue.Add ("range", true);
multiValue.Add ("transfer-encoding", true);
multiValue.Add ("upgrade", true);
multiValue.Add ("vary", true);
multiValue.Add ("via", true);
multiValue.Add ("warning", true);
multiValue.Add ("www-authenticate", true);
// Extra
multiValue.Add ("set-cookie", true);
multiValue.Add ("set-cookie2", true);
}