首页 > 其他分享 >为什么使用 CDN 需要 Angular 应用正确返回 HTTP 200 和 404 状态码

为什么使用 CDN 需要 Angular 应用正确返回 HTTP 200 和 404 状态码

时间:2023-07-29 18:34:29浏览次数:68  
标签:200 浏览器 CDN 404 HTTP Angular

CDN(Content Delivery Network)是内容分发网络,它的目的是通过在各地建立节点缓存数据,使用户可以就近获取数据,从而提高数据获取的速度和稳定性。

Angular 是一种用于构建客户端应用的开发平台。它带来了一种新的方式来构建应用,完全是在浏览器中运行,无需借助任何后端服务。

HTTP 200 和 404 是 HTTP 协议中的状态码。HTTP 200 表示请求成功,而 HTTP 404 表示请求的资源未找到。

接下来,我们来谈谈为什么使用 CDN 需要 Angular 应用正确返回 HTTP 200 和 404 状态码。

当用户访问一个 Angular 应用时,他们首先会请求一个 HTML 页面,这通常是应用的入口点。这个页面上将加载 Angular 应用的各个部分,包括 JavaScript、CSS、图片等资源。这些资源可能会被 CDN 缓存,以提高加载速度。

如果这些资源请求成功,服务器将返回 HTTP 200 状态码。浏览器接收到这个状态码后,知道资源已经成功加载,并将其添加到页面中。如果 Angular 应用不能正确返回 HTTP 200,那么浏览器可能无法成功加载和显示应用。

相反,如果请求的资源不存在,服务器应返回 HTTP 404。这告诉浏览器请求的资源未找到,浏览器将不会尝试加载这个资源。如果 Angular 应用不能正确返回 HTTP 404,那么浏览器可能会继续尝试加载这个资源,这可能会浪费网络资源,也可能导致应用显示错误。

例如,假设你的 Angular 应用有一个 JavaScript 文件叫做 app.js。当用户访问你的应用时,浏览器将尝试加载这个文件。如果文件存在,并且服务器正确返回 HTTP 200,那么浏览器将加载这个文件,并运行其中的 JavaScript 代码。但是,如果文件不存在,服务器应返回 HTTP 404。否则,浏览器可能会一直尝试加载这个文件,直到超时。

在使用 CDN 的场景中,正确的 HTTP 状态码尤其重要。因为 CDN 会缓存资源,如果一个资源被请求,但是返回了错误的状态码,那么 CDN 可能会缓存这个错误的结果,导致用户在一段时间内都无法正确访问这个资源。

例如,假设你的 Angular 应用有一个 CSS 文件,叫做 styles.css。当用户首次访问你的应用时,CDN 会从原始服务器获取这个文件,并缓存它。如果服务器正确返回 HTTP 200,那么 CDN 将缓存这个文件,并在后续的请求中,直接从缓存中返回这个文件。但是,如果服务器返回了错误的状态码,例如 HTTP 500,那么 CDN 可能会缓存这个错误的结果。

标签:200,浏览器,CDN,404,HTTP,Angular
From: https://www.cnblogs.com/sap-jerry/p/17590255.html

相关文章

  • 内容分发网络 CDN 概述
    CDN(ContentDeliveryNetwork)是一种分布式网络架构,旨在提供高效、可靠地将内容传送给全球用户的服务。CDN的主要目标是通过将数据缓存到位于不同地理位置的多个服务器上,使用户能够从离他们更近的服务器获取内容,从而减少访问延迟、提高加载速度和改善网站的性能。在这篇文章中,我将......
  • 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对象的方法方法描述......
  • [TJOI2007] 线段
    #[TJOI2007]线段##题目描述在一个$n\timesn$的平面上,在每一行中有一条线段,第$i$行的线段的左端点是$(i,L_{i})$,右端点是$(i,R_{i})$。你从$(1,1)$点出发,要求沿途走过所有的线段,最终到达$(n,n)$点,且所走的路程长度要尽量短。更具体一些说,你在任何时候只能选择向......
  • 关于处理HTTP Get请求ULR过长导致报400错误码的问题
    运行环境:Win11,VS2022现象:使用swagger,Postman发起一个GET请求,返回:HTTPError400.TherequestURLisinvalid. 另外ResponseHeaders中显示Server:Microsoft-HttpApi/2.0原因:是由于Get请求的URL字符串长度过长,导致HTTP.sys服务拦截并终止。解决方案:在注册表项:计算......
  • 传奇数据库dbc2000如何卸载呢?
    在之前的文章里,多多亲笔写了dbc2000数据库安装、汉化、破解视频教程,今天给大家写一个一dbc2000如何卸载的图文教程,其实对于软件的卸载和安装是差不多的,只要看得懂中文的都能够完成,只是完整的时间不一样,但我可不是为了写一篇如何卸载DBC2000的,而是另有作用的。如果你的电脑上安装了3......
  • ORA-32004:为字符串实例指定的已过时或不推荐使用的参数
    错误信息【汉】ORA-32004:为字符串实例指定的已过时或不推荐使用的参数【英】ORA-32004:obsoleteordeprecatedparameter(s)specifiedforstringinstance例在启动实例时,提示此错误,但数据库正常启动。版本Oracle【11.2.0.3.0】、【11.2.0.1.0】、【11.2.0.4.0】原因服务器中spfi......
  • 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......