在PHP中, 现已支持通过HTTP/2的Server Push功能实现主动推送CDN,以下是对php主动推送cdn的详细介绍:
PHP主动推送CDN
HTTP/2与Server Push
HTTP/2标准发布于2015年,旨在提升HTTP访问体验,其优势包括二进制传输、头部压缩、多路复用和服务器推送(Server Push),大部分CDN厂商已宣布支持HTTP/2,但许多省略了Server Push特性,腾讯CDN已完成对HTTP/2 Server Push的支持,并进行了详细性能测试。
网站加载过程分析
1、浏览器请求主页面:浏览器请求index.html,服务端响应内容。
2、解析HTML标签:浏览器解析主页的HTML标签,发现需要CSS、GIF、JS等资源。
3、发起资源请求:浏览器发起针对CSS、GIF、JS的内容请求。
4、获取并解析资源:获取并解析JS和CSS等内容,然后继续请求依赖资源。
尽管存在并发传输,但总体上是顺序的,等待资源响应的时间减慢了主页面加载速度。
推送实现方式
标识依赖资源
W3C候选推荐标准建议了两种标识依赖资源的方法:文件内<link>标签和HTTP头部携带。
1、静态Link标签法:<link rel="preload" href="push.css" as="style">
2、HTTP头表示法:Link: <push.css>; rel=preload; as=style
推送资源
用户访问CDN时,主要包括直接访问的边缘节点、若干中间节点和客户源站,路径中的每层都可以对请求做分析,预测可能的依赖资源,通过插入静态<link>标签或者增加响应头部返回给浏览器。
1、客户端指定推送资源:客户端通过url或者请求头说明需要的资源url。
2、CDN节点指定推送资源:CDN节点针对请求资源配置推送资源。
3、源站指定推送资源:通过增加响应头link通知客户端或者CDN节点,后续希望推送的依赖资源。
功能实现
1、依赖资源预测模块:根据请求头或配置预测浏览器需要的资源,该推送资源url必须是和主请求是同一host,如果不属于同一host,服务器拒绝推送资源。
2、PUSH_PROMISE帧:服务器通过PUSH_PROMISE帧告诉浏览器准备推送的资源路径,该信息在原主请求流上发送,必须优先主请求响应发送。
3、依赖资源请求模块:构造和主请求一样的请求信息,在本地或后端服务器请求推送资源,并主动创建新的HTTP/2请求流。
推送式与拉取式CDN服务的优劣
推送式CDN服务,如Amazon CloudFront,内容发布者主动将需要发布的资源推送到CDN发布服务器上,然后由CDN服务商分发到其各节点,优点是节省源站带宽,提前将要分发的内容放到CDN节点上,当某个流量高峰来临时,不会占满源站带宽,缺点是需要针对CDN做接口开发,在分发内容生成时主动上传给CDN。
拉取式CDN服务,如CloudFlare,内容不需要主动发布,而是在浏览器向CDN请求资源时,CDN服务才主动向后端的资源服务器抓取资源,优点是实在太简单,签个合同,做个DNS CNAME解析就完成了CDN的实施,缺点是除了在DNS设置上稍显麻烦外,其它方便性均超过前者。
FAQs
1、什么是PHP主动推送?
PHP主动推送是指在特定情况下,服务器主动向客户端发送消息或通知,常见的实现方式包括使用长连接技术(如WebSockets和SSE)、Comet技术、消息队列、浏览器通知以及第三方推送服务(如FCM、OneSignal)。
2、如何设置并实现PHP的主动推送功能?
要实现PHP的主动推送功能,首先需要了解主动推送的概念,并掌握使用HTTP协议进行推送的基本原理,使用cURL库来发送HTTP请求,编写相应的代码实现主动推送,配置定时任务,定期执行PHP脚本,实现定时的主动推送功能。
以上内容就是解答有关php主动推送cdn的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/71505.html