第十三章 CSP 中的 HTTP 请求 - CSP 服务器 URL 和类名称解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 第十三章 CSP 中的 HTTP 请求 - CSP 服务器 URL 和类名称解析

第十三章 CSP 中的 HTTP 请求 - CSP 服务器事件流

CSP 服务器收到来自 CSP 网关的请求时,它会确定该请求是针对静态页面还是针对 CSP 类的。如果是静态页面,它会立即将页面发回。如果是针对 CSP 类,它会执行以下操作:

  1. 确定此请求属于哪个会话。如果没有,它会启动一个新会话。
  2. 确保在正确的 Caché 命名空间中处理请求。
  3. 确保对象中正确的 %CSP.Session可用,并根据 HTTP 请求中包含的信息在对象中创建 %CSP.Request 的实例。如果需要任何解密,它也会这样做。
  4. 构造 %CSP.Response 对象以允许应用程序修改响应标头。
  5. 确定应由哪个类处理请求并调用其 Page 方法(该方法又调用 OnPage 回调方法)。

CSP 服务器 URL 和类名称解析

CSP 服务器通过解释其 URL 来确定将 HTTP 请求分派到哪个类。 CSPURL 分解为以下组件:

Component Purpose
http:// 协议
localhost 网络服务器地址
[<port_no>] 可选,Web 服务器正在运行的端口号;默认为端口 80
/csp/samples/ 目录
object.csp 文件名和扩展名
?OBJID=2 查询

协议和服务器地址由 Web 服务器处理,与 CSP 服务器无关。该目录用于确定 URL 引用的 CSP 应用程序。每个 Caché 配置都可以定义多个 CSP 应用程序,这些应用程序由 URL 的目录部分标识。每个 CSP 应用程序都指定了具有给定 URL 目录的所有请求使用的一些设置。其中最重要的是要在其中执行请求的 Caché 命名空间和身份验证机制,它指定可以建立与应用程序的哪种连接。要创建和修改 CSP 应用程序,请导航到管理门户上的系统管理 > 安全 > 应用程序 > Web 应用程序。

根据 CSP 应用程序,使用以下算法从文件名中确定处理请求的类的名称:

  1. 如果文件扩展名是 .cls,则使用文件名作为类名。
  2. 如果文件扩展名是.csp,则使用csp(或配置中指定的包名)作为包名,文件名作为类名来创建类名。如果此类不存在或已过期,则 CSP 编译器会从 CSP 源文件创建一个类(如果启用了自动编译)。该文件的名称和扩展名与 URL 中的相同。

例如,CSP 服务器分派此 URL

http://localhost:57772/csp/samples/menu.csp
复制代码

到一个名为 menu 的类,该类包含在与目录 /csp/samples 关联的 Caché命名空间(在本例中为 SAMPLES 命名空间)中运行的包 csp 中。

如果 URL 目录 /csp/accountingCaché 命名空间 ACCOUNTING 相关联,则 CSP 服务器分派此 URL:

http://localhost:57772/csp/accounting/Ledger.csp
复制代码

到一个名为 ledger 的类,该类包含在 Caché 命名空间 ACCOUNTING 中运行的包 csp 中。

请注意,与 CSP 一起使用的 URL 文件名有许多限制:

  • 它们必须是有效的 Caché 类名称(它们不能包含空格或标点字符(点和百分比字符 (%25) 除外)并且不能以数字字符开头)。
  • 它们不得与已在使用的其他类名冲突。

注意:如果 .csp 文件放置在已定义目录的子目录中,则子目录名称将成为用于页面的类中 %CSP.Page 的包名称的一部分。例如,如果 URL 目录 /csp/samples 定义为 CSP 应用程序,则 /csp/samples/myapp/page.csp 引用名为 csp.myapp.page 的类。

相关文章
|
17天前
|
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)
|
15天前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
55 15
|
19天前
|
数据采集 JSON 测试技术
Grequests,非常 Nice 的 Python 异步 HTTP 请求神器
在Python开发中,处理HTTP请求至关重要。`grequests`库基于`requests`,支持异步请求,通过`gevent`实现并发,提高性能。本文介绍了`grequests`的安装、基本与高级功能,如GET/POST请求、并发控制等,并探讨其在实际项目中的应用。
28 3
|
24天前
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
23 5
|
1月前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
48 3
|
1月前
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
16天前
|
Web App开发 网络安全 数据安全/隐私保护
Lua中实现HTTP请求的User-Agent自定义
Lua中实现HTTP请求的User-Agent自定义
|
1月前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
下一篇
DataWorks