httpd配置ResponseHeader
Posted Young Dreamer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpd配置ResponseHeader相关的知识,希望对你有一定的参考价值。
今天遇到一个问题:我把项目编译后的静态文件发布到开发机上,开发机使用httpd启的静态文件服务,页面的访问是在特制的壳浏览器里面,我更新了代码后,发现页面被缓存了,找到壳的RD联调了一下,发现我的主页html的ResponseHeader里面没有Cache-Control字段,如何添加该字段呢,于是翻看了一些资料,把问题顺利解决后,把解决问题的过程分享给大家。
1.查找官网文档,找到设置HTTP request and response headers的模块,mod_headers;
2.根据官网解释,mod_headers模块主要提供了两个指令来管理request和response header;
(1)Header 指令
主要用于配置response header,支持替换、合并、删除response header中的字段,基本语法如下:
Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]
(2)RequestHeader指令
主要用于配置request header,支持替换、合并、删除request header中的字段,基本语法如下:
RequestHeader [condition] set|append|add|unset header [value] [env=[!]variable]
(3)指令出现的地方与优先级
以上两个指令几乎可以在配置文件任意地方出现,可以在 <Directory>
, <Location>,
<Files>
部分, 可以在 .htaccess
文件中,也可以出现在虚拟主机配置中,但是有优先级的区别,官方给出的优先级:
The directives are processed in the following order:
- main server
- virtual host
<Directory>
sections and.htaccess
<Files>
<Location>
3.了解了基本配置规则,接下来就是动手操作了。
(1)在httpd.conf文件确保mod_headers模块被加载
LoadModule headers_module MODULES_PATH/mod_headers.so
(2)使用Header指令,进行set操作
<IfModule headers_module> Header set Cache-Control no-cache </IfModule>
经过以上三个步骤,重启了httpd,完美解决问题。
以上是关于httpd配置ResponseHeader的主要内容,如果未能解决你的问题,请参考以下文章
[ESP] ESP-IDF WiFi配网(SoftAP+HTTPD)代码备注
服务器提交了协议冲突. Section=ResponseHeader Detail=“Content-Length”标题值无效
The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF(示