0
点赞
收藏
分享

微信扫一扫

汽车标定技术(二十) -- 移植标定栈时主机厂、供应商应该做什么?(2)

文章目录

第四十四章 Web 网关返回的 HTTP 响应标头

IRIS® 中的 Web 应用程序(包括基于 REST 的应用程序)通常负责制定完整的 HTTP 响应标头。出于性能原因,Web 网关默认将响应标头以及以下内容通过 Web 服务器直接流式传输到客户端。这种操作模式称为非解析标头 (NPH) 方法。 Web 网关不会通过服务器提供的专用 API 函数将响应标头传回,从而授予托管 Web 服务器对响应标头的任何控制权。假设需要读取和解释响应头指令的是客户端而不是 Web 服务器。

然而,如果 Web 服务器需要解释响应标头,以便进一步调用 CSP 引擎生成的标头指令中隐含的基于 Web 服务器的功能,则这种假设就会失效。例如,通过调用输出过滤器来进一步调用处理响应(压缩和加密实用程序等)。通常发现此类输出过滤器不适用于根据非解析标头操作模式返回的 CSP 内容。

存在一种工具来指示 Web 网关通过托管 Web 服务器显式传递响应标头,而不是将它们直接流式传输到客户端。

要使用此功能,请设置以下 CSP 标头指令:CSP-nph: false

该指令必须在 OnPreHTTP() 方法中设置。例如:

<script language=objectscript method=OnPreHTTP arguments=""
returntype=%Boolean>
Do %response.SetHeader("CSP-nph", "false")
Quit 1 </script>

当设置为 false 时(Web 网关的默认设置为 true),CSP-nph 指令可确保通过从 CSP 引擎返回的响应标头正确通知托管 Web 服务器有关响应的性质。结果,可以根据需要执行任何进一步的处理。这是解析标头模式。

Web 网关在解析标头模式下运行时,托管 Web 服务器会解释响应标头,并可能添加自己的标头指令。至少它会在响应中添加一个服务器标头。例如:

Server: Apache/2.0.48 (Win32)

OR:

Server: Microsoft-IIS/5.1

请注意,此功能仅适用于直接与 Web 服务器 API 配合使用的 Web 网关实现。换句话说:除了 CGI 之外的一切。

如果使用 Web Gateway CGI 模块并且需要此工具,则必须将 Web 服务器配置为使用 CSP CGI 模块的非NPH 版本。例如,使用 CSPcgi 而不是 nph-CSPcgiCGI 模块名称中使用的 nph- 前缀是通知 Web 服务器不需要读取和解释模块返回的响应标头的标准方式:换句话说,在非解析标头模式下运行。

这些模块的解析版本和非解析版本之间的本质区别在于 HTTP 响应状态行的制定方式。这是标题块中的第一行。

对于已解析的标头,请按如下格式设置 HTTP 状态行的格式:

Status: <status_code>

示例:

Status: 200 OK

对于未解析的标头,HTTP 状态行的格式如下:

HTTP/1.1<status_code>

示例:

HTTP/1.1 200 OK

Web Gateway 附带的 CGI 模块会在内部自动处理这些差异。 CSP 引擎始终返回标准 HTTP 标头块 (2)。

举报

相关推荐

0 条评论