summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/django/middleware/gzip.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/django/middleware/gzip.py')
-rw-r--r--lib/python2.7/site-packages/django/middleware/gzip.py52
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/python2.7/site-packages/django/middleware/gzip.py b/lib/python2.7/site-packages/django/middleware/gzip.py
deleted file mode 100644
index fb54501..0000000
--- a/lib/python2.7/site-packages/django/middleware/gzip.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import re
-
-from django.utils.text import compress_sequence, compress_string
-from django.utils.cache import patch_vary_headers
-
-re_accepts_gzip = re.compile(r'\bgzip\b')
-
-class GZipMiddleware(object):
- """
- This middleware compresses content if the browser allows gzip compression.
- It sets the Vary header accordingly, so that caches will base their storage
- on the Accept-Encoding header.
- """
- def process_response(self, request, response):
- # It's not worth attempting to compress really short responses.
- if not response.streaming and len(response.content) < 200:
- return response
-
- patch_vary_headers(response, ('Accept-Encoding',))
-
- # Avoid gzipping if we've already got a content-encoding.
- if response.has_header('Content-Encoding'):
- return response
-
- # MSIE have issues with gzipped response of various content types.
- if "msie" in request.META.get('HTTP_USER_AGENT', '').lower():
- ctype = response.get('Content-Type', '').lower()
- if not ctype.startswith("text/") or "javascript" in ctype:
- return response
-
- ae = request.META.get('HTTP_ACCEPT_ENCODING', '')
- if not re_accepts_gzip.search(ae):
- return response
-
- if response.streaming:
- # Delete the `Content-Length` header for streaming content, because
- # we won't know the compressed size until we stream it.
- response.streaming_content = compress_sequence(response.streaming_content)
- del response['Content-Length']
- else:
- # Return the compressed content only if it's actually shorter.
- compressed_content = compress_string(response.content)
- if len(compressed_content) >= len(response.content):
- return response
- response.content = compressed_content
- response['Content-Length'] = str(len(response.content))
-
- if response.has_header('ETag'):
- response['ETag'] = re.sub('"$', ';gzip"', response['ETag'])
- response['Content-Encoding'] = 'gzip'
-
- return response