diff --git a/src/Smidge/RequestHelper.cs b/src/Smidge/RequestHelper.cs index 19539ab..b0263e7 100644 --- a/src/Smidge/RequestHelper.cs +++ b/src/Smidge/RequestHelper.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text.RegularExpressions; using Microsoft.AspNetCore.Http; @@ -93,23 +93,14 @@ public string Content(string path) public CompressionType GetClientCompression(IDictionary headers) { var type = CompressionType.None; - var agentHeader = (string)headers[HeaderNames.UserAgent]; - if (agentHeader != null && agentHeader.Contains("MSIE 6")) - { - return type; - } - string acceptEncoding = headers[HeaderNames.AcceptEncoding]; - - if (!string.IsNullOrEmpty(acceptEncoding)) + if (headers.TryGetValue(HeaderNames.AcceptEncoding, out StringValues acceptEncoding)) { - string[] acceptedEncodings = acceptEncoding.Split(','); - // Prefer in order: Brotli, GZip, Deflate. // https://www.iana.org/assignments/http-parameters/http-parameters.xml#http-content-coding-registry - for (var i = 0; i < acceptedEncodings.Length; i++) + for (var i = 0; i < acceptEncoding.Count; i++) { - var encoding = acceptedEncodings[i].Trim(); + var encoding = acceptEncoding[i].Trim(); CompressionType parsed = CompressionType.Parse(encoding); @@ -118,21 +109,21 @@ public CompressionType GetClientCompression(IDictionary he { return CompressionType.Brotli; } - + // Not pack200-gzip. if (parsed == CompressionType.GZip) { type = CompressionType.GZip; } - + if (type != CompressionType.GZip && parsed == CompressionType.Deflate) { type = CompressionType.Deflate; - } + } } } return type; } } -} \ No newline at end of file +}