首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Ubuntu 16.04上使用Nginx的头模块实现浏览器缓存

当网站充满了由后台加载的脚本运行的图像和交互式内容时,打开网站并不是一项简单的任务。它包括从服务器逐个请求许多不同的文件。最大限度地减少这些请求的数量是加快网站速度的一种方法。...为此,必须引入告知浏览器行为方式的新HTTP响应标头。 这就是Nginx的标题模块发挥作用的地方。此模块可用于向响应添加任意任意标头,但其主要作用是正确设置缓存标头。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),ETag则会将值存储并发送回带有If-None-Match请求标头的服务器。 我们可以使用以下命令在命令行上模拟它。...第3步 - 配置缓存控制和过期标头 除了ETag文件验证头之外,还有两个缓存控制响应头:Cache-Control和Expires。...这意味着缓存控制标头已正确配置,您的网站将受益于性能提升和由于浏览器缓存导致的服务器请求减少。您应该根据您网站的内容自定义缓存设置,但本文中的默认值是一个合理的起点。

1.4K30

如何在CentOS 7上使用Nginx的头模块实现浏览器缓存

当网站充满了由后台加载的脚本运行的图像和交互式内容时,打开网站并不是一项简单的任务。它包括从服务器逐个请求许多不同的文件。最大限度地减少这些请求的数量是加快网站速度的一种方法。...为此,必须引入告知浏览器行为方式的新HTTP响应标头。 这就是Nginx的标题模块发挥作用的地方。此模块可用于向响应添加任意任意标头,但其主要作用是正确设置缓存标头。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),则会将ETag值存储并发送回带有If-None-Match请求标头的服务器。 我们可以使用以下命令在命令行上模拟它。...第3步 - 配置缓存控制和过期标头 除了ETag文件验证头之外,还有两个缓存控制响应头:Cache-Control和Expires。...test.js和test.css还有JavaScript和设置缓存头的样式表文件的结果应该是都相似的。 这意味着缓存控制标头已正确配置,您的网站将受益于性能提升和由于浏览器缓存导致的服务器请求减少。

1.5K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    跟我一起探索 HTTP-HTTP缓存

    特别是在执行内容协商时,来自服务器的响应可能取决于 Accept、Accept-Language 和 Accept-Encoding 请求标头的值。...此外,如果你基于用户代理提供内容优化(例如,响应式设计),你可能会想在 Vary 标头的值中包含“User-Agent”。...但是,也存在一些问题;例如,时间格式复杂且难以解析,分布式服务器难以同步文件更新时间。 为了解决这些问题,ETag 响应标头被标准化作为替代方案。...为了避免这种启发式缓存,最好显式地为所有响应提供一个默认的 Cache-Control 标头。...public 值具有使响应可存储的效果,即使存在 Authorization 标头。 备注: 只有在设置了 Authorization 标头时需要存储响应时才应使用 public 指令。

    28151

    研发:如何防止混合内容

    TL;DR 在您的页面上加载资源时,请始终使用 https:// 网址。 使用 Content-Security-Policy-Report-Only 标头监控网站上的混合内容错误。...如果您看到证书警告,或内容无法通过 HTTPS 显示,则意味着无法安全地获取资源。 ? 资源无法通过 HTTPS 获取。 ? 尝试通过 HTTPS 查看资源时系统发出的证书警告。...您可以通过在服务器发送的响应中添加 Content-Security-Policy 或 Content-Security-Policy-Report-Only 标头为页面启用这些功能。...浏览器在响应标头或 元素中收到的多个 CSP 标头值被合并,强制作为一个政策;报告政策也以同样的方式进行合并。...如需启用此功能,请设置 Content-Security-Policy-Report-Only 指令,方法是将其添加为网站的响应标头。

    1.6K30

    揭秘HTTP3优先级

    有些朋友可能以为,对于HTTP/2和HTTP/3,浏览器可以在HTML中发现资源后立即提出请求,再单靠优先级排序来获得正确的响应。不好意思,做不到的。...实际HTTP标头只能用于表达资源的初始优先级,一旦稍后需要更新优先级(比如延迟加载的图像最初获得低优先级,但在滚动至视图内时需要切换至高优先级),那单靠HTTP标头就实现不了了。...受测试页面的性质决定(仅包含初始加载),所以我无法观察浏览器是否真的发送了更新。但在原理上,Chromium肯定会为图像执行此操作(先将其视为低优先级,之后在图像需要可见时再更新为高优先级)。...图九:不同浏览器在处理自定义优先级HTTP标头时的差异。 Chromium会同时发送Priority_update帧加自定义标头。...最后,Safari用我们传递给fetch()的一个标头覆盖了自己的标头,这可以算是“正确”(至少符合预期)的反应。 总体而言,我对浏览器允许手动设置标头感觉有点意外。

    80620

    提高 Web 性能:提高网站速度的技巧和工具

    优化图像和媒体: 使用响应式图像和 WebP 等现代格式。 实现图像和视频的延迟加载。 使用 ImageOptim 或 TinyPNG 等工具压缩图像。...利用浏览器缓存: 为静态资源设置适当的缓存标头。 使用 Service Worker 缓存动态内容并启用离线功能。 实施渐进式网络应用程序 (PWA) 功能以获得更好的性能。...改善服务器响应时间: 使用内容分发网络 (CDN) 在全球范围内分发内容。 优化服务器配置和数据库查询。 实施服务器端渲染 (SSR) 以加快初始页面加载速度。...通过应用这些技巧并使用正确的工具,您可以创建更快、更高效的网站,从而提供更好的用户体验。 本文共 379 个字数,平均阅读时长 ≈ 1分钟

    11010

    直呼太有用了!五个 Chrome 调试工具技巧

    支持多种回放速度,方便开发者快速定位问题。 可以导出记录的数据,以便于分享和存档。 2. 演示 3....功能 本地修改、覆盖、重写 HTTP 请求响应头 自定义 HTTP 响应头:允许开发者在不修改服务器端代码的情况下,修改或添加 HTTP 响应头。...本地调试:在本地环境中模拟服务器端的响应头设置,方便调试和测试。 临时修改:覆盖的响应头仅在当前浏览器会话中生效,不会影响其他用户和环境。 2. 演示 3....入口 打开控制台 -> 网络 -> 对应请求 -> 右键 -> 替换标头 -> 添加/修改标头 4. 使用场景 跨域调试 在开发过程中,可能会遇到跨域资源请求的问题。...此时,可以通过模拟失焦状态测试页面中的动画、定时器等是否正确暂停或降低运行频率,以减少后台资源消耗。 用户体验优化 当用户切换到其他标签页或最小化浏览器时,页面会进入失焦状态。

    99810

    Azure Machine Learning - 如何使用 GPT-4 Turbo with Vision

    2023-12-01-preview RESOURCE_NAME 是 OpenAI 资源的名称 DEPLOYMENT_NAME 是 GPT-4 Turbo with Vision 模型部署的名称 必需的标头...api-version=2023-12-01-preview 必需的标头: Content-Type:application/json api-key: {API_KEY} RESOURCE_NAME...限制 图像支持 “每个聊天会话的图像增强限制”:无法对单个聊天调用中的多个图像应用增强功能。 “最大输入图像大小”:输入图像的最大大小限制为 20 MB。...“增强 API 中的对象定位”:当增强 API 用于对象定位时,模型会检测对象重复项,它将为所有重复项生成一个边界框和标签,而不是为每个重复项生成单独的边界框和标签。...“图像聊天限制”:在聊天操场或 API 中上传图像时,每个聊天调用有 10 张图像的限制。

    44710

    HTTP1.1协议状态码

    实体格式由Content-Type标头字段中提供的媒体类型指定。源服务器必须在返回201状态代码之前创建资源。如果不能立即执行该操作,则服务器应以202(已接受)响应代替。...201响应可能包含ETag响应标头字段,该字段指示刚刚创建的所请求变量的实体标签的当前值,请参见14.19节。...仅当由Cache-Control或Expires标头字段指示时,此响应才可缓存。 临时URI应该由响应中的Location字段给出。...仅当由Cache-Control或Expires标头字段指示时,此响应才可缓存。 临时URI应该由响应中的Location字段给出。...仅当客户端将不正确的POST请求转换为带有长查询信息的GET请求,客户端下降到重定向的URI“黑洞”(例如,指向URI的重定向URI前缀)时,才会发生这种罕见情况后缀),或者当服务器受到客户端的攻击时,

    2.7K40

    Java 文件下载案例讲解

    设置HTTP响应的头信息,指定文件的类型和下载方式。将文件内容写入HTTP响应的输出流。关闭输入流和输出流。接下来,我们将通过一个示例来演示如何执行这些步骤。...接下来,我们使用输入流和输出流来读取文件内容并将其写入响应输出流,从而将文件的内容发送给客户端浏览器。中文文件名问题当涉及到文件下载时,有时会遇到中文文件名的问题。...这是因为HTTP标头和文件系统通常使用不同的字符编码方式。为了确保中文文件名的正确显示和下载,您需要进行适当的编码和解码。以下是解决中文文件名问题的步骤:1....您可以在response对象中设置Content-Disposition标头来指定文件名,并使用URLEncoder对文件名进行编码。...客户端浏览器的处理大多数现代浏览器能够正确解析和显示经过编码的文件名。当用户单击下载链接时,浏览器将正确显示中文文件名。3.

    40820

    【Java 进阶篇】Java文件下载案例详解

    设置HTTP响应的头信息,指定文件的类型和下载方式。 将文件内容写入HTTP响应的输出流。 关闭输入流和输出流。 接下来,我们将通过一个示例来演示如何执行这些步骤。...接下来,我们使用输入流和输出流来读取文件内容并将其写入响应输出流,从而将文件的内容发送给客户端浏览器。 中文文件名问题 当涉及到文件下载时,有时会遇到中文文件名的问题。...这是因为HTTP标头和文件系统通常使用不同的字符编码方式。为了确保中文文件名的正确显示和下载,您需要进行适当的编码和解码。 以下是解决中文文件名问题的步骤: 1....您可以在response对象中设置Content-Disposition标头来指定文件名,并使用URLEncoder对文件名进行编码。...客户端浏览器的处理 大多数现代浏览器能够正确解析和显示经过编码的文件名。当用户单击下载链接时,浏览器将正确显示中文文件名。 3.

    1.5K50

    跨域资源共享(CORS)

    这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头 CORS机制支持安全的跨域请求以及浏览器和服务器之间的数据传输。...使用绘制到画布上的图像/视频帧drawImage()。 图片的CSS形状。 本文是对跨域资源共享的一般讨论,并包括对必要的HTTP标头的讨论。...请注意,此标头类似于Allow响应标头,但严格在访问控制的上下文中使用。...但是,如果请求是由于请求中存在Authorization标头而触发预检的请求,则无法使用上述步骤解决限制。除非您可以控制请求的服务器,否则您将根本无法解决它。...访问控制允许标题部分 所述Access-Control-Allow-Headers报头在响应用于一个预检请求,以指示在进行实际请求时HTTP标头都可以使用。

    3.6K50

    解决Refused to execute script from http:127.0.0.1:8004login because its MIME

    这个问题通常发生在浏览器尝试加载一个脚本时,服务器返回了不正确的MIME类型。本文将介绍几种解决该问题的方法。方法一:检查服务器配置首先,你需要检查服务器的配置。确保服务器正确地设置了MIME类型。...方法二:通过设置HTTP响应头解决另一种解决方法是通过设置HTTP响应头来解决这个问题。...通过HTTP响应头设置方法示例:在服务器端,可以使用以下示例代码来设置响应头,以解决MIME类型不正确的问题:javascriptCopy code// 在服务器端设置响应头response.setHeader...无论是通过服务器配置、设置HTTP响应头还是使用CDN,以上示例代码都可以帮助你解决Refused to execute script的问题,确保脚本能够正确加载和执行。...如果设置的MIME类型不正确,可能会导致浏览器无法正确处理文件,或者报错类似于“Refused to execute script”的问题。

    4.7K20

    【API架构】REST API 设计的原则和最佳实践

    这篇最佳实践文章面向对创建 RESTful Web 服务感兴趣的开发人员,这些服务提供跨多个服务套件的高可靠性和一致性;遵循这些准则;服务定位于内部和外部客户快速、广泛、公开采用。...缓存约束要求数据响应带有隐式或显式标签为可缓存或不可缓存的请求。如果响应是可缓存的,则客户端缓存有权为以后的等效请求重用该响应数据。...超媒体作为应用程序状态引擎 (HATEOAS):客户端通过正文内容、查询字符串参数、请求标头和请求的 URI(资源名称)传递状态。服务通过正文内容、响应代码和响应头向客户端提供状态。...服务通过在响应(如 Cache-Control、Expires、Pragma、Last-Modified 等)上设置标头来提高缓存能力 分页:REST 的原则之一是连通性——通过超媒体链接。...资源命名:当资源命名正确时,API 是直观且易于使用的。做得不好,同样的 API 会让人感觉很笨拙,并且难以使用和理解。RESTful API 适用于消费者。

    1.4K10

    Web Security 之 HTTP Host header attacks

    如果服务器隐式信任 Host 标头,且未能正确验证或转义它,则攻击者可能会使用此输入来注入有害的有效负载,以操纵服务器端的行为。...这导致 Host 头被隐式信任了,其值未进行正确的验证或转义,而攻击者可以使用工具轻松地修改 Host 。...简而言之,你需要能够修改 Host 标头,并且你的请求能够到达目标应用程序。如果是这样,则可以使用此标头来探测应用程序,并观察其对响应的影响。...提供一个任意的 Host 头 在探测 Host 头注入漏洞时,第一步测试是给 Host 头设置任意的、无法识别的域名,然后看看会发生什么。...例如,你可能会发现 Host 头在没有 HTML 编码的情况下反映在响应标记中,甚至直接用于脚本导入。反射的客户端漏洞(例如 XSS )由 Host 标头引起时通常无法利用。

    5.9K20

    Microsoft REST API指南

    5.2 故障 故障(缺陷),或者更具体地说是服务故障,定义为服务无法正确返回数据以响应有效的客户端请求。通常会返回“5xx”HTTP错误代码。 故障会影响整体 API 的可用性。...6.2 变量排序规则 客户端处理响应数据时一定不能依赖服务端JSON响应数据字段的顺序。例如,例如,当服务器返回的 JSON 对象中的字段顺序发生变化,客户端应当能够正确进行解析处理。...| True 7.4.1 POST POST操作应该支持重定向响应标头(Location),以便通过重定向标头返回创建好的资源的链接。...以下准则有助于在使用自定义标头时保持一致性。...因此,服务应该接受PII参数作为标头传输。 然而在实践中,由于客户端或软件的限制,在许多情况下无法遵循上述建议。

    4.6K11

    知识分享之规范——HTTP 状态码

    新 URL 由Location响应中的标头字段给出。除非另有说明,否则此响应是可缓存的。 302 找到 请求资源的 URL 已临时更改。新 URL 由Location响应中的字段给出。...此响应仅在由Cache-ControlorExpires标头字段指示时才可缓存。 303 查看其他 响应可以在不同的 URI 下找到,并且应该在该资源上使用 GET 方法检索。...4xx 状态码(客户端错误) 状态码 描述 400 错误请求 由于语法不正确,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。 401未经授权 表示请求需要用户认证信息。...431 请求标头字段太大 服务器不愿意处理请求,因为它的头字段太大。 444无响应(Nginx) Nginx 服务器不向客户端返回任何信息并关闭连接。...451 因法律原因不可用 用户代理请求的资源无法合法提供。 499 客户端关闭请求(Nginx) 当 HTTP 服务器正在处理其请求时,客户端关闭了连接,使服务器无法发回 HTTP 标头。

    1.9K30

    C# HTTP系列5 HttpWebResponse.StatusCode属性

    Found 指示请求的信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。...接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 原始请求方法为 POST 时, 重定向的请求将使用 GET 方法。 移动是的同义词MovedPermanently。...Redirect 指示请求的信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。...RedirectKeepVerb 指示请求信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。...TemporaryRedirect 指示请求信息位于 Location 标头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。

    2.2K20

    发送HTTP请求

    发送HTTP请求 本主题介绍如何发送HTTP请求(如POST或GET)和处理响应。 HTTP请求简介 可以创建%Net.HttpRequest的实例来发送各种HTTP请求并接收响应。...它会自动发送正确的cookie,并根据需要设置Referer标头。 要创建HTTP请求,请使用以下常规流程: 创建%Net.HttpRequest的实例。...然后,该实例使用基本访问身份验证基于该用户名和密码创建HTTP Authorization标头(RFC 2617)。此%Net.HttpRequest发送的任何后续请求都将包括此头。...当%Net.HttpRequest的实例收到401 HTTP状态代码和WWW-Authenticate标头时,它会尝试使用包含支持的身份验证方案的Authorization标头进行响应。...具体来说,如果服务器使用401状态码和用于SPNEGO、Kerberos或NTLM的WWW-Authenticate头响应,那么IRIS将使用当前操作系统用户名和密码创建Authorization头。

    1.1K10
    领券