  :class:`~django.http.HttpResponseNotModified`.
  
  Also sets the ``Date`` and ``Content-Length`` response-headers.
  
  Locale middleware
  -----------------
  
  .. module:: django.middleware.locale
     :synopsis: Middleware to enable language selection based on the request.
 
</s> remove Handles conditional GET operations. If the response has a ``ETag`` or
 </s> add Handles conditional GET operations. If the response doesn't have an ``ETag``
header, the middleware adds one if needed. If the response has a ``ETag`` or </s> remove or you can rely on the :class:`~django.middleware.common.CommonMiddleware`
 </s> add or you can rely on the :class:`~django.middleware.http.ConditionalGetMiddleware` </s> remove     If-Modified-Since, the response is replaced by an HttpNotModified.
 </s> add     If-Modified-Since, the response is replaced by an HttpNotModified. An ETag
    header is added if needed.
.. versionchanged:: 1.11

    In older versions, the middleware didn't set the ``ETag`` header.

  :class:`~django.http.HttpResponseNotModified`.
  
  Also sets the ``Date`` and ``Content-Length`` response-headers.
  
.. versionchanged:: 1.11

    In older versions, the middleware didn't set the ``ETag`` header.

  Locale middleware
  -----------------
  
  .. module:: django.middleware.locale
     :synopsis: Middleware to enable language selection based on the request.
keep keep keep add keep keep keep keep keep
 Fixed #26447 -- Deprecated settings.USE_ETAGS in favor of ConditionalGetMiddleware. 
docs/ref/middleware.txt