云工网页上游适配
适配器先通过宿主的 OUTBOUND_ORIGINS 许可核对每个 HTTPS URL,再以有限方法、标头、正文和超时发起请求;请求设置 redirect: error,不跟随其他来源。响应柄只在当前事件有效。应用可检查状态,随后选择一次性 JSON 读取或保留原生正文流并回应当前入站请求。
0.2.0 新增增量读取与动态公网 HTTPS 上游,全部用豫言写在云工宿主库之上,不增加宿主 JavaScript:
- 读取:与授权服务适配同一套机制(读取状态表、按需创建读取器、带信号的
pipeThrough、流式TextDecoder、码点边界切块、有限整读、取消、句柄卫生),响应柄由请求授权网页上游与请求公网HTTPS上游签发并登记;已开始增量读取的柄,旧的读取网页上游癸象正文文与回应入站以上游流抛豫言异常。 - 请求标头:新增
X-Yuyan-Request-ID;所有值须为可见 ASCII,Authorization至多 8192 字节,其余 512 字节,请求编号恰 36 位小写十六进制与连字符。 - 动态公网 HTTPS:适配在发请求前逐次严格校验网址(可见 ASCII、
https://、无用户信息与查询片段、主机名只含字母数字点连字符且带点、无 IP 字面量与内网名、端口白名单),用URL规范化后发出;许可用宿主对“来源https://*”的授权判定(云工外发网址已授权)表示,云工宿主现以OUTBOUND_ORIGINS含https://*满足;请求经云工调用全局安全调用全局fetch(redirect: manual,AbortSignal.timeout,正文为字节句柄),因宿主的云工请求发起可中断在声明了静态来源清单时拒绝清单外的网址,也不允许manual。
一致性验证见 一致性验证/。另有一项可选的宿主改动(把 PUBLIC_HTTPS 形式接入),不是必需。