第十二章 CSP 中的 HTTP 请求 - CSP 运行时环境

简介: 第十二章 CSP 中的 HTTP 请求 - CSP 运行时环境

第十二章 CSP 中的 HTTP 请求 - CSP 运行时环境

CSP 的主要任务是提供动态内容以响应传入的 HTTP(超文本传输协议)请求。本节介绍 CSP 如何处理 HTTP 请求的基础知识。

HTTP 是一种简单的协议,其中客户端向服务器发出请求。 HTTP 是一种无状态协议;客户端和服务器之间的连接只持续为服务请求所需的时间。每个 HTTP 请求都包含一个请求标头,该标头指定请求类型(例如 GETPOST)、一个 URL 和一个版本号。请求还可能包含附加信息。 CSP 自动确定它应该处理哪些 HTTP 请求,将它们分派到运行在 Caché 服务器上的适当类,并将请求信息打包成易于使用的对象(例如对象中的 %CSP.Request)。


CSP 运行时环境


下图显示了 CSPHTTP 请求的架构:


image.png

CSP 应用程序的运行时环境包括以下内容:

  • HTTP 客户端(例如 Web 浏览器)
  • HTTP 服务器(Web 服务器,例如 ApacheIIS
  • CSP 网关(Web 服务器的 Caché 插件)
  • Caché 服务器(CSP 服务器在其上运行请求的 CSP 应用程序)


HTTP 请求处理


下图说明了 CSP 处理 HTTP 请求时的事件流:


dd7f6fda57b0470e809a02a1229567ab_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


  1. 浏览器(或类似的 Web 客户端)发出 HTTP 请求。
  2. Web 服务器确定这是一个 CSP 请求并将其分派到 CSP 网关(安装在 Web 服务器上)。 2a Web 服务器可能会提供静态内容,具体取决于应用程序配置。
  3. CSP 网关重新打包请求并将其发送到正确的缓存服务器。
  4. Caché 服务器对消息进行解码并确定请求是针对静态页面还是针对 CSP 类的。

如果请求是针对静态文件(例如 .html.jpg 文件),Caché 服务器会在本地文件系统中找到该文件并将其内容发送回客户端。 (请注意,如果提供的文件包含 Unicode 文本,CSP 会使用 BOM 来确定要使用的正确编码。BOM 必须存在于 Unicode 文本文件中。)

如果是针对一个类,它会确定哪个事件处理类(应用程序的一部分)将处理该事件并调用类 Page 方法。

  1. age 方法或静态页面的输出作为 HTTP 响应发送回 CSP 网关。
  2. CSP 网关将 HTTP 响应传递给 Web 服务器(具体来说,响应通过 CSP 网关流回 Web 服务器)。
  3. Web 服务器将响应返回给 Web 浏览器,然后浏览器处理响应——在 HTML 的情况下,它会显示它。


Web 服务器和 CSP 网关


HTTP 请求在 HTTP 客户端(例如 Web 浏览器)向 Web 服务器发送消息时开始。 CSP 网关是 Web 服务器(例如 IISApache)用来处理特定类型事件的 DLL 或共享库。如果满足以下条件,CSP 网关将处理 HTTP 请求:

  • URL 的目录路径具有在 Web 服务器中定义的正确访问权限。

CSP 网关提供以下功能:

  1. 它提供最少的处理并将其大部分工作卸载到 Caché 服务器,为 Web 服务器提供更多资源。
  2. 它维护一个与命名 CSP 服务器的连接池。
  3. 它提供故障转移选项以允许使用多个互连的 CSP 服务器。


CSP 服务器


CSP 服务器是一个运行在 Caché 服务器上的进程,它专门为来自 CSP 网关的请求提供服务。每个 Caché 服务器可以根据需要运行任意数量的 CSP 服务器进程(受机器类型的限制;CSP 服务器不计入许可证计算)。

在处理无状态请求时,每个 CSP 服务器进程可以支持来自许多不同客户端的请求。在状态保持模式下,一个进程专用于处理来自一个客户端的请求,直到状态保持模式被关闭。


注意:Caché 的主要优势之一是应用程序服务器和数据服务器之间没有真正的区别。可以根据需要将应用程序配置为使用尽可能多或尽可能少的机器。这是独立于应用程序逻辑和数据库模式完成的。特定系统是应用程序服务器还是数据服务器(或两者)只是配置问题。

相关文章
|
28天前
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
75 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
8天前
|
缓存 前端开发 API
|
13天前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
2天前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
3天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
3天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
3天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
7天前
|
安全 API 数据安全/隐私保护
常见的HTTP请求方法
【10月更文挑战第25天】这些HTTP请求方法共同构成了客户端与服务器之间交互的基础,使得客户端能够根据不同的需求对服务器资源进行各种操作。在实际应用中,开发者需要根据具体的业务场景和资源的性质选择合适的请求方法来实现客户端与服务器之间的有效通信。
|
14天前
|
网络协议
Lua中实现异步HTTP请求的方法
Lua中实现异步HTTP请求的方法
|
12天前
|
存储 安全 网络协议
HTTP 请求方法
【10月更文挑战第22天】HTTP 请求方法
23 2