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

简介: 第十三章 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 的类。

相关文章
|
15天前
|
Java
java原生发送http请求
java原生发送http请求
|
22天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
48 1
|
4天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
20 8
|
7天前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
22 1
|
12天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
1月前
|
JSON 前端开发 数据格式
糊涂工具类真是场景下请求http接口的案例
糊涂工具类真是场景下请求http接口的案例
21 0
|
1月前
|
数据采集 缓存 前端开发
http和https请求服务器的时候在请求头部分都带什么到服务器呢?
HTTP和HTTPS请求头基本结构相似,HTTPS多了一层SSL/TLS加密。常见请求头如Accept(指定内容类型)、Authorization(身份验证)、Cookie(会话跟踪)、User-Agent(标识用户代理)等。HTTPS特有的头包括Upgrade-Insecure-Requests(升级到HTTPS)、Strict-Transport-Security(强制使用HTTPS)、Sec-Fetch-*(安全策略)和X-Content-Type-Options、X-Frame-Options等(增强安全性)。实际应用中,请求头会根据需求和安全策略变化。
20 0
|
1月前
|
网络协议 网络安全 API
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
48 1
|
1月前
|
域名解析 Kubernetes Linux
Kubernetes 外部 HTTP 请求到达 Pod 容器的全过程
Kubernetes 外部 HTTP 请求到达 Pod 容器的全过程
38 4
|
1月前
|
测试技术 API Python
Python3 新一代Http请求库Httpx使用(详情版)(下)
Python3 新一代Http请求库Httpx使用(详情版)