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

文章目录

  • [第四十四章 Web 网关返回的 HTTP 响应标头](#第四十四章 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)。

相关推荐
佚名猫3 分钟前
vue3+vite+pnpm项目 使用monaco-editor常见问题
前端·vue3·vite·monacoeditor
满分观测网友z5 分钟前
vue的<router-link>的to里面的query和params的区别
前端·javascript·vue.js
BillKu7 分钟前
Vue3 + TypeSrcipt 防抖、防止重复点击实例
前端·javascript·vue.js
鱼樱前端8 分钟前
Vue3结合three和babylonjs实现3D数字展厅效果
前端·vue.js
Themberfue11 分钟前
Vue ⑥-路由
前端·javascript·vue.js
whatever who cares13 分钟前
React hook之useRef
前端·javascript·react.js
kooboo china.22 分钟前
Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(八):异步处理逻辑详解
前端·css·人工智能·编辑器·html·交互
天涯学馆25 分钟前
工厂模式在 JavaScript 中的深度应用
前端·javascript·面试
Lightning-py30 分钟前
Linux命令cat /proc/net/snmp查看网络协议层面统计信息
网络·网络协议·tcp/ip
crary,记忆30 分钟前
Angular中Webpack与ngx-build-plus 浅学
前端·webpack·angular·angular.js