繁体   English   中英

非动态自定义HTTP标头

[英]Non-dynamic custom HTTP headers

根据Mozilla在Ogg媒体上的这篇文章 ,媒体在浏览器中使用X-Content-Duration标头可以更无缝地工作,从而提供了以秒为单位的长度。

假设我将长度存储在某个地方(一定是存储在数据库中,也许还存储在文件名本身中( video-file-name.XXX.ogv ,其中XXX是时间,以秒为单位)),有没有办法形成这个额外的头文件仅使用Apache .htaccess设置? 我问是因为将文件加载到PHP脚本中似乎很笨拙,尤其是当PHP默认情况下会添加其他标头来禁用缓存,并且无法正确响应范围(部分内容)请求时。 是的,可以用PHP编写许多代码来支持ETag和范围请求,但是当Apache具有所有内置功能时,仅添加一个标头就做所有这一切似乎是过头了。

我没有示例,但是您应该能够使用mod_header在.htaccess级别指定HTTP响应标头。

当然,我应该在何处添加标题的问题实际上取决于您如何访问它。 如果您只是要下载静态资源,则可以通过Apache添加它。 但是,您提到一个数据库。 如果决定将这些文件存储在数据库中,则可以使用一些API提供该文件,在这种情况下,API实现应附加标头,而不要分流到apache。

另外,如果您想要的动态数据需要处理以确定(它不在文件名等中),那么您已经在使用某些代码引擎来实现它,只需添加标题即可。

您可以使用mod_perl扩展名进行此类操作,以拦截这些请求并添加其他标头,然后再允许Apache继续处理它。

一种可能有效的纯PHP方法是使用mod_rewrite使请求通过PHP路由,添加附加头,然后让Apache通过使用函数处理其余部分。

或者,您可以使用持续时间数据库来构造一个静态.htaccess文件,该文件使用mod_header为每个请求的文件插入正确的持续时间标头。

这是mod_cern_meta的域。 它允许为文件静态分配额外的HTTP标头。

您可以使用cron作业,并为每个视频生成一个* .meta文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM