标签:指示 ram 隐藏 options 语言 前端 cut remote alt
https://docs.djangoproject.com/zh-hans/2.0/ref/middleware/
缓存类中间件(cache middleware)
class UpdateCacheMiddleware
class FetchFromCacheMiddleware
启用站点范围的缓存。 如果启用了这些,只要CACHE_MIDDLEWARE_SECONDS设置定义,每个Django支持的页面都将被缓存。 请参阅缓存文档
class CommonMiddleware
添加了一些方便的操作:
如果APPEND_SLASH为True并且初始URL未以斜杠结尾,并且在URLconf中找不到,则通过在末尾附加斜杠来形成新URL。 如果在URLconf中找到此新URL,则Django会将请求重定向到此新URL。 否则,照常处理初始URL
例如,如果您没有foo.com/bar的有效URL模式但foo.com/bar/的格式有效,则foo.com/bar将被重定向到foo.com/bar/。
如果PREPEND_WWW为True,则缺少前导“www”的网址。 将被重定向到具有前导“www”的相同URL。
这两个选项都用于规范化URL。 理念是每个URL应该只存在于一个地方。 从技术上讲,URL foo.com/bar与foo.com/bar/不同 - 搜索引擎索引器会将它们视为单独的URL - 因此最佳做法是规范化URL。
GZip中间件
class GZipMiddleware
警告:
安全研究人员最近透露,当在网站上使用压缩技术(包括GZipMiddleware)时,该网站可能会受到一些可能的攻击。在您的网站上使用GZipMiddleware之前,您应该非常仔细地考虑您是否受到这些攻击。
如果您对是否受到影响有任何疑问,则应避免使用GZipMiddleware。
应将此中间件放在需要读取或写入响应主体的任何其他中间件之前,以便之后进行压缩。
以下条件如果为真,那么它将不会执行压缩:
如果响应具有ETag标头,则ETag变弱以符合RFC 7232#section-2.1。
您可以使用gzip_page()装饰器将GZip压缩应用于各个视图。
Conditional GET中间件
class ConditionalGetMiddleware
处理条件GET操作。 如果响应没有ETag标头,则中间件会在需要时添加一个。 如果响应具有ETag或Last-Modified标头,并且请求具有If-None-Match或If-Modified-Since,则响应将被HttpResponseNotModified替换。
Locale中间件
class LocaleMiddleware
根据请求中的数据启用语言选择。 它为每个用户定制内容。
LocaleMiddleware.response_redirect_class
默认会到HttpResponseRedirect。子类LocaleMiddleware并覆盖该属性以自定义中间件发出的重定向
Message中间件
class MessageMiddleware
允许基于cookie和session的消息的支持。
Security中间件
class SecurityMiddleware
注意:如果您的部署情况允许,通常最好让您的前端Web服务器执行SecurityMiddleware提供的功能。 这样,如果存在Django不提供的请求(例如静态媒体或用户上传的文件),它们将具有与对Django应用程序的请求相同的保护。
这个django.middleware.security.SecurityMiddleware中间件对request/response提供了一些安全增强措施。每一个都可以单独打开或关闭,通过下面的设置。
SECURE_BROWSER_XSS_FILTER
SECURE_CONTENT_TYPE_NOSNIFF
SECURE_HSTS_INCLUDE_SUBDOMAINS
SECURE_HSTS_PRELOAD
SECURE_HSTS_SECONDS
SECURE_REDIRECT_EXEMPT
SECURE_SSL_HOST
SECURE_SSL_REDIRECT
对于只应通过HTTPS访问的站点,您可以通过设置“Strict-Transport-Security”标头,指示现代浏览器拒绝通过不安全的连接(在给定的时间段内)连接到您的域名。 这可以减少您在某些SSL剥离中间人(MITM)攻击中的风险。
如果您的站点同时提供HTTP和HTTPS连接,则大多数用户默认情况下最终会使用不安全的连接。 为了获得最佳安全性,您应该将所有HTTP连接重定向到HTTPS。
如果将SECURE_SSL_REDIRECT设置为True,SecurityMiddleware将永久(HTTP 301)将所有HTTP连接重定向到HTTPS。
Session中间件
class SessionMiddleware
打开session支持。
Site中间件
class CurrentSiteMiddleware
将表示当前站点的站点属性添加到每个传入的HttpRequest对象
Authentication中间件
class AuthenticationMiddleware
对每一个HttpRequest请求对象添加user属性,代表了当前的登录用户。
class RemoteUserMiddleware
使用Web服务器提供的验证的中间件。
class PersistentRemoteUserMiddleware
仅在登录页面使用Web服务器提供的验证的中间件。
CSRF protection中间件
X-Frame-Options中间件
class XFrameOptionsMiddleware
通过X-Frame-Options标头进行简单的点击劫持保护。
SecurityMiddleware
It should go near the top of the list if you‘re going to turn on the SSL redirect as that avoids running through a bunch of other unnecessary middleware.
UpdateCacheMiddleware
Before those that modify the Vary
header (SessionMiddleware
, GZipMiddleware
, LocaleMiddleware
).
GZipMiddleware
Before any middleware that may change or use the response body.
After UpdateCacheMiddleware
: Modifies Vary
header.
ConditionalGetMiddleware
Before CommonMiddleware
: uses its ETag
header when USE_ETAGS
= True
.
SessionMiddleware
After UpdateCacheMiddleware
: Modifies Vary
header.
LocaleMiddleware
One of the topmost, after SessionMiddleware
(uses session data) and UpdateCacheMiddleware
(modifies Vary
header).
CommonMiddleware
Before any middleware that may change the response (it sets the ETag
and Content-Length
headers). A middleware that appears before CommonMiddleware
and changes the response must reset the headers.
After GZipMiddleware
so it won‘t calculate an ETag
header on gzipped contents.
Close to the top: it redirects when APPEND_SLASH
or PREPEND_WWW
are set to True
.
CsrfViewMiddleware
Before any view middleware that assumes that CSRF attacks have been dealt with.
It must come after SessionMiddleware
if you‘re using CSRF_USE_SESSIONS
.
AuthenticationMiddleware
After SessionMiddleware
: uses session storage.
MessageMiddleware
After SessionMiddleware
: can use session-based storage.
FetchFromCacheMiddleware
After any middleware that modifies the Vary
header: that header is used to pick a value for the cache hash-key.
FlatpageFallbackMiddleware
Should be near the bottom as it‘s a last-resort type of middleware.
RedirectFallbackMiddleware
Should be near the bottom as it‘s a last-resort type of middleware.
标签:指示 ram 隐藏 options 语言 前端 cut remote alt
原文地址:https://www.cnblogs.com/aric-zhu/p/9370883.html