小编IM4*_*M42的帖子

在 Apache 输出过滤器中使用响应标头

我正在编写一个 apache 模块输出过滤器,它需要消耗几个仅供内部使用的响应标头。这些响应标头由在后端运行的基于perl的应用程序设置。我在输出过滤器中使用的 APR 函数是:

apr_table_get(r->headers_out, "x-my-response-header");
Run Code Online (Sandbox Code Playgroud)

然而,似乎发生的情况是,在我的输出过滤器中,我没有看到上述响应标头集,直到第三或第四桶旅 - 不幸的是已经太晚了 - 我实际上需要使用 x-my- 的值response-header 计算新的响应标头并将设置在对浏览器的响应中。

我这样插入输出过滤器:

ap_hook_insert_filter(insertOutputFilterHook, NULL, NULL, APR_HOOK_FIRST);
ap_register_output_filter(myFiltersName, myOutputFilter, NULL, AP_FTYPE_CONTENT_SET);
Run Code Online (Sandbox Code Playgroud)

我已经验证的内容:

  • 仅供内部使用的标头确实出现在我的浏览器上的 HTTP 响应中(尚未取消设置)
  • 前两个桶队的桶包含html页面文本

问题:

  • 在第一次调用我的输出过滤器/第一个存储桶旅时,仅内部响应标头未设置/不可见的原因可能是什么?
  • 是否可以先累积前几个桶组,然后在知道内部唯一响应标头的值后开始将它们清除?

c apache perl http mod-deflate

6
推荐指数
0
解决办法
393
查看次数

标签 统计

apache ×1

c ×1

http ×1

mod-deflate ×1

perl ×1