我一直在测试网页上嵌入了 Flash 组件的 PS3 浏览器 (NetFront),并且在发出来自 Flash 的任何请求的方式上似乎存在一个相当严重的错误。浏览器正在添加引荐来源网址(referer),Flash 播放器也在添加引荐来源网址,从而导致标题重复。如果referrer 标头相同,这实际上是可以的,但它们不同,因此请求被W2k8 上的http.sys 停止。这对我来说是一个主要问题,因为我有一个 Flash 组件需要调用 Web 服务才能运行。
有什么方法可以过滤或允许这些请求通过,可能会一路剥离重复的标头。
我们已经想到但在我们的开发和实际环境中不是最理想或不可能的一些解决方案是:
- 在服务器前添加代理以清理请求。
- 在我们的负载均衡器上修复请求。这可能适用于我们的实时环境,但不适用于开发环境。同样使用负载均衡器执行此操作是不好的做法,我们的运营团队不会高兴:)
- 在初始化期间通过 flashvars 将所有数据发送到 Flash。可能通过 Javascript 进行任何更新/回调。这感觉很混乱,并且需要为一个平台提供大量自定义代码。
- 阻止浏览器或 Flash 发送引用标头。这是可以接受的,但是似乎没有办法在 Flash 或 NetFront 中启用它。
作为参考,以下请求将重现该问题(复制并粘贴到 Fiddler 或其他工具中,我假设您正在运行 IIS7、W2K8)。你应该得到400 Bad Request
回应。
获取/HTTP/1.1 主机:本地主机 参考:http://localhost/NetFrontBrowser/ 参考:http://localhost/Flash/
非常感谢