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

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

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

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

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

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

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

java 复制代码
<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 服务器会解释响应标头,并可能添加自己的标头指令。至少它会在响应中添加一个服务器标头。例如:

java 复制代码
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 状态行的格式:

java 复制代码
Status: <status_code>

示例:

java 复制代码
Status: 200 OK

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

java 复制代码
HTTP/1.1<status_code>

示例:

java 复制代码
HTTP/1.1 200 OK

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

相关推荐
BestSongC21 小时前
行人摔倒检测系统 - 前端文档(1)
前端·人工智能·目标检测
喵叔哟21 小时前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
0思必得01 天前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
Misnice1 天前
Webpack、Vite、Rsbuild区别
前端·webpack·node.js
青茶3601 天前
php怎么实现订单接口状态轮询(二)
前端·php·接口
Charlie_lll1 天前
力扣解题-移动零
后端·算法·leetcode
大橙子额1 天前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
打工的小王1 天前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
爱喝白开水a1 天前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag
董世昌411 天前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6