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

相关文章
|
2月前
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
151 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
16天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
67 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
14天前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
55 15
|
18天前
|
数据采集 JSON 测试技术
Grequests,非常 Nice 的 Python 异步 HTTP 请求神器
在Python开发中,处理HTTP请求至关重要。`grequests`库基于`requests`,支持异步请求,通过`gevent`实现并发,提高性能。本文介绍了`grequests`的安装、基本与高级功能,如GET/POST请求、并发控制等,并探讨其在实际项目中的应用。
28 3
|
23天前
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
23 5
|
1月前
|
缓存 前端开发 API
|
2月前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
114 1
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
1月前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
46 3
|
1月前
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
15天前
|
Web App开发 网络安全 数据安全/隐私保护
Lua中实现HTTP请求的User-Agent自定义
Lua中实现HTTP请求的User-Agent自定义

热门文章

最新文章

下一篇
DataWorks