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

2024-04-06 10:20

本文主要是介绍第四十四章 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() 方法中设置。例如:

<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)。

这篇关于第四十四章 Web 网关返回的 HTTP 响应标头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879679

相关文章

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp