Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
// <copyright file="HeaderUtility.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.Util {
using System;
internal static class HeaderUtility {
public static bool IsEncodingInAcceptList(string acceptEncodingHeader, string expectedEncoding) {
if (String.IsNullOrEmpty(acceptEncodingHeader)) {
return false;
}
foreach (string encoding in acceptEncodingHeader.Split(',')) {
string e = encoding.Trim();
// This code will typically handle all existing browsers, which
// use "encoding1, encoding2" for this header.
// IE, Firefox and Safari are sending "gzip, deflate"
// Opera is sending "deflate, gzip, x-gzip, identity, *;q=0"
// There is a currently hypothetical case where a browser would use the quantified syntax
// on specific encodings ("encoding1;q=0.8, encoding2 ;q=0.2") which we don't handle here.
// For those situations, the browser would get the uncompressed version.
// See RFC 2068 for details.
if (String.Equals(e, expectedEncoding, StringComparison.Ordinal)) {
return true;
}
}
// no match found
return false;
}
}
}