首页 > 其他分享 >关于 HTTP 响应头部字段 X-Cache-Akamai

关于 HTTP 响应头部字段 X-Cache-Akamai

时间:2023-07-29 18:57:58浏览次数:42  
标签:缓存 HTTP 请求 Cache 响应 Akamai 服务器

笔者的一套适合 SAP UI5 开发人员循序渐进的学习教程里介绍了 SAP UI5 应用的开发步骤,运行这些应用后,在 Chrome 开发者工具 Network 面板里观察到一个请求的 Response Header 字段名称为 X-Cache-Akamai,值为 head,这代表 Akamai 内容分发网络(Content Delivery Network,CDN)的缓存状态信息。

本文详细解释这个 HTTP 头部字段的含义,并通过举例来说明。

  1. Akamai 内容分发网络(CDN)简介:
    Akamai 是一家全球领先的 CDN 提供商,它拥有分布在全球各地的服务器网络,用于存储和传送网站的内容。当用户访问启用了 Akamai CDN 的网站时,请求会被转发到距离用户最近的 Akamai 服务器,从而加快内容传输速度,提高网站性能和可靠性。

  2. Response Header 中的 X-Cache-Akamai 字段:
    当网站启用了 Akamai CDN 服务时,Akamai 服务器会在 HTTP 响应头部(Response Header)中添加一个名为 X-Cache-Akamai 的字段,用于提供有关请求的缓存状态的信息。

  3. X-Cache-Akamai 字段的值:
    X-Cache-Akamai 字段的值描述了 Akamai 服务器对于当前请求所采取的缓存处理方式。在你的例子中,字段值为 head,它是 Akamai 使用的一种缓存标记,用于表示此请求的响应头部已被缓存,但响应体尚未被缓存。

举例说明:
假设有一个名为 example.com 的网站启用了 Akamai CDN,并且用户在浏览器中输入网址 "http://example.com" 并访问该网站。

  1. 第一次访问:
  • 用户首次访问该网站,浏览器发送一个请求到 example.com 的服务器。
  • 由于这是用户首次访问,Akamai 服务器尚未缓存该网站的内容。
  • 服务器将响应头部返回给浏览器,并在其中添加 X-Cache-Akamai: miss,表示此请求的响应头部没有被缓存(miss 表示未命中缓存)。
HTTP/1.1 200 OK
Date: Wed, 27 Jul 2023 12:00:00 GMT
Server: Apache
X-Cache-Akamai: miss
  1. 第二次访问:
  • 用户再次访问 "http://example.com"。
  • 此时,Akamai 服务器已经缓存了上一次请求的响应头部。
  • 服务器在响应头部中添加 X-Cache-Akamai: hit,表示此请求的响应头部已经被缓存(hit 表示命中缓存)。
HTTP/1.1 200 OK
Date: Wed, 27 Jul 2023 12:05:00 GMT
Server: Apache
X-Cache-Akamai: hit
  1. 部分内容更新:
  • 现在,"example.com" 网站的某些内容发生了更新,例如首页的一幅图片。
  • 用户再次访问 "http://example.com",浏览器发送请求到 Akamai 服务器。
  • 由于响应头部通常不会频繁变动,Akamai 服务器仍然使用缓存的响应头部,因此仍然返回 X-Cache-Akamai: hit
  • 然而,由于响应体发生了变化,Akamai 服务器将在响应体中返回新的图片内容,并在响应头部中添加 X-Cache-Akamai: fresh,表示响应体是新鲜的,因为它已经被更新。
HTTP/1.1 200 OK
Date: Wed, 27 Jul 2023 12:10:00 GMT
Server: Apache
X-Cache-Akamai: hit
  1. 强制刷新:
  • 用户在浏览器中执行了强制刷新,或者按下了 Ctrl + F5 键,意图跳过缓存,获取最新的内容。
  • 浏览器发送一个带有 Cache-Control: no-cache 请求头的请求到 Akamai 服务器。
  • Akamai 服务器无视缓存,并向 example.com 的源服务器请求最新内容。
  • 服务器返回全新的内容,并在响应头部中添加 X-Cache-Akamai: fresh
GET / HTTP/1.1
Host: example.com
Cache-Control: no-cache

HTTP/1.1 200 OK
Date: Wed, 27 Jul 2023 12:15:00 GMT
Server: Apache
X-Cache-Akamai: fresh

总结

当你在 Chrome 开发者工具的 Network 面板中看到一个请求的 Response Header 字段 X-Cache-Akamai 的值为 head 时,这表示 Akamai CDN 已经缓存了该请求的响应头部,但响应体可能没有被缓存。这个机制允许 Akamai CDN 更有效地处理请求,提高网站性能,并且在必要时通过请求源服务器以获取最新内容。

标签:缓存,HTTP,请求,Cache,响应,Akamai,服务器
From: https://www.cnblogs.com/sap-jerry/p/17590281.html

相关文章

  • 为什么使用 CDN 需要 Angular 应用正确返回 HTTP 200 和 404 状态码
    CDN(ContentDeliveryNetwork)是内容分发网络,它的目的是通过在各地建立节点缓存数据,使用户可以就近获取数据,从而提高数据获取的速度和稳定性。Angular是一种用于构建客户端应用的开发平台。它带来了一种新的方式来构建应用,完全是在浏览器中运行,无需借助任何后端服务。HTTP200......
  • Angular 服务器端渲染应用返回 HTTP 404 和 200 状态码对 SEO 的影响
    在理解为什么Angular应用在正确的时间点返回HTTP404状态码对SEO非常重要之前,我们首先需要了解一些基本的SEO(搜索引擎优化)概念,以及HTTP404状态码的含义。搜索引擎优化(SEO)是一种通过理解搜索引擎如何工作、什么样的内容受欢迎,以及用户在搜索时会使用什么样的关键词......
  • 在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求(官方文档)
    在ASP.NETCore中使用IHttpClientFactory发出HTTP请求项目2023/04/11本文内容消耗模式发出POST、PUT和DELETE请求出站请求中间件使用基于Polly的处理程序作者:KirkLarkin、SteveGordon、GlennCondron和RyanNowak。可以注册IHttpClientFactory并将其......
  • AJAX--XMLHttpRequest对象
    一、了解XMLHttpRequest对象是AJAX的核心对象,发送对象以及接收服务器数据的返回XMLHttpRequest对象浏览器都内置了该对象,直接使用二、XMLHttpRequest对象的方法和属性1、创建XMLHttpRequest对象varxhr=newXMLHttpRequest()2、XMLHttpRequest对象的方法方法描述......
  • SAP Fiori Elements 应用加载时的 url 参数 sap-ui-xx-viewCache=false
    SAPFioriElements是SAP提供的一种UI技术,其主要目的是提供一种快速、简单、一致且易于维护的方式来开发SAP用户界面。而sap-ui-xx-viewCache=false是一个URL参数,用于控制FioriElements应用的视图缓存。在SAPFioriElements中,视图缓存是一个可以提高应用性能的......
  • 关于处理HTTP Get请求ULR过长导致报400错误码的问题
    运行环境:Win11,VS2022现象:使用swagger,Postman发起一个GET请求,返回:HTTPError400.TherequestURLisinvalid. 另外ResponseHeaders中显示Server:Microsoft-HttpApi/2.0原因:是由于Get请求的URL字符串长度过长,导致HTTP.sys服务拦截并终止。解决方案:在注册表项:计算......
  • Oracle数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME、DB_UNIQUE_NAME的区别 转
    Oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME、SERVICE_NAME、SID、INSTANCE_NAME、GLOBAL_DATABASE_NAME的区别DB_NAME:①是数据库名,长度不能超过8个字符,记录在datafile、redolog和controlfile中②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同③在RAC环境中,各个节点的DB_......
  • 龙蜥白皮书精选:面向 HTTP 3.0 时代的高性能网络协议栈
    文/高性能网络 SIG01背景概述 随着互联网特别是移动互联网的快速发展,对互联网通信协议提出了新的诉求。经过多年的发展,QUIC协议在2021年正式被IEFT标准化,成为HTTP3的标准传输层协议。QUIC是基于UDP实现的面向连接可靠有序的传输协议。相比于TCP在内核态实现,QUIC......
  • Java开发 - SpringCache初体验
    前言早些时候,博主介绍过Redis的使用:Java开发-Redis初体验,Redie是基于缓存的一项技术,对于Redis,博主此处不再赘述,不了解的可以去看这篇文章,但Redis缓存并不是顶峰,本文要讲的内容就是Redis的辅助工具:SpringCache——的使用。有了SpringCache,Redis便可如虎添翼,使用效果更上一层楼,下面......
  • AJAX - 创建 XMLHttpRequest 对象
      AJAX-创建XMLHttpRequest对象AJAX(异步JavaScript和XML)是一种在Web应用程序中创建快速动态更新的技术。使用AJAX,Web应用程序可以异步地向服务器发送和接收数据,而无需刷新整个页面。AJAX广泛用于Web应用程序中,包括社交媒体,电子商务,在线游戏等等。XMLHttpRequest是A......