【问题标题】:Modify Http response修改 Http 响应
【发布时间】:2010-12-03 11:57:09
【问题描述】:

我需要编写一个 Servlet 过滤器来检查发送的 HTML,并将其中指向 /images 的所有链接完全修改到不同的域,以便从 CDN(内容交付网络)而不是比我的网站。

这是推荐的吗?我该如何实现?

-谢谢

【问题讨论】:

    标签: java html response servlet-filters


    【解决方案1】:

    最有效的方法是将图像路径保留在应用配置中,并使用不同的配置进行开发和生产。开发版本将执行 localhost(或其他),而产品版本将指向您的 CDN。

    如果配置不是一个选项,Jason Hunter's Java Servlet Programming 有一个 search/replacing outgoing html with a regex 的示例。您可以使用和调整它来替换您的图像 URL。

    如果您的应用服务器前面有负载平衡器或 Apache,您也可以在那里进行替换。它的好处是不会用 CDN 逻辑污染您的应用程序。但缺点是版本控制比较难等。

    【讨论】:

    • 谢谢。但是,您建议的最有效方法将导致更改我的应用程序中的大量文件,因为目前图像在任何地方都被称为 /images/...。这不仅仅是图像的问题! javascript、css、帮助文件等,一切都需要外部化。因此,我一直在寻找一种不那么侵入性的方式来做到这一点。我有点试过你的最后一个建议。通过对图像执行 301 重定向,在 Apache 中重写 URL。但是,请求首先到达我的服务器,然后被重定向到 CDN,这是一个巨大的开销。我不想依赖浏览器缓存。
    • 一些负载均衡器实际上可以修改出站 html,因此不需要 301 魔法。它实际上与搜索/替换 servlet 完全相同,但在不是您的应用服务器的硬件中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    相关资源
    最近更新 更多