Youtube API V3 和 Etag

标签 youtube youtube-api etag

我使用 youtube api v3,我想了解 Etag.我想将它用于缓存目的,但我不知道在 PHP 中该做什么。
你能告诉我 etag 恢复后要遵循的步骤吗?请。感谢帮助。

最佳答案

根据 youtube 文档 ( https://developers.google.com/youtube/v3/getting-started#etags ),eTag 基本上用于确定资源是否已更改。将它们用于:

  • 优化 - 在您的应用中缓存 youtube 资源可以减少带宽和延迟。缓存时,存储 eTag,以便在获取资源时可以包含它。如果资源没有改变,你会得到一个 304 响应代码(NOT MODIFIED),这意味着你可以使用你的缓存版本。否则,您将获得资源的更新版本。
  • 配额使用 - 您可以通过缓存 youtube 数据来减少您利用配额的数量。第一次获得资源时,您将使用配额。在显示资源之前,首先检查您的缓存资源是否发生了变化,这只会花费您 1 个配额单位。如果资源没有改变,youtube 会返回 304 响应。如果它发生了变化,您可以再次获得资源,根据您获得的资源消耗不同的配额单位。有关配额的更多信息:( https://developers.google.com/youtube/v3/getting-started#quota )。
  • 覆盖保护 - 如果您要覆盖资源,包含 eTag 将确保您不会覆盖资源的较新版本。

  • eTag 是 HTTP 1.1 规范 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 ) 的一部分,用于请求/响应的 header 中。这是一篇很好的文章,在低层次上讨论了它们:http://www.ibuildings.com/blog/2013/07/etags-uninitiated

    至于在 PHP 中使用 eTags,我只能建议几件事,因为我从来没有做过。 YouTube 为供稿和供稿中的单个项目返回电子标签,我不确定如何将它们用于供稿中的单个项目。但是要获取原始提要本身,本质上您将使用 curl 并将 eTag 添加到您的请求的 header ( PHP cURL custom headers )。您可能还想查看 http_cache_etag ( http://www.php.net/manual/en/function.http-cache-etag.php )

    关于Youtube API V3 和 Etag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752421/

    相关文章:

    java - 在 web 应用程序的 jboss 服务器中进行新部署后,浏览器缓存文件未更新

    regex - 正则表达式查找youtube网址,剥离参数并返回干净的视频网址?

    jquery - Youtube Player Iframe,在 Firefox 上没有视频的声音

    .net - 从嵌入的 YouTube 视频中删除品牌和标题链接

    python - 在 Django 的基于类的通用 View 中使用 ETag/Last-Modified 装饰器

    apache - 如何生成和配置 ETag?

    c# - 使用JSON(UWP,C#)获取YouTube统计信息

    performance - 加载多个嵌入式Youtube视频时,页面加载性能更好吗?

    php - PHP 中的 YouTube 分析 API : I keep getting "Insufficient permissions" while authenticated

    youtube - YouTube订阅按钮事件