生态Web 与网络
言讯:HTTP/1.1 服务端协议
使用 yanxu-http 1.0 安全解析请求、管理持久连接,并构造 Cookie、分块与升级响应。
yanxu-http 1.0.0(常用别名http,本文称“言讯”)是严格 HTTP/1.1 服务端协议库。
它负责请求解析、响应编码和连接状态,不负责路由、中间件、TLS 或应用并发。
安装
最低言序为 1.1.6:
yanbao add http --version '^1.0'
yanbao install[依赖]
http = { 包 = "yanxu-http", git = "https://github.com/yanxulang/yanxu-http.git", 修订 = "v1.0.0", 版 = "^1.0" }离线解析与响应
引「包:http」为 HTTP;
引「标准:字节」为 字节;
定 请求 为 HTTP.解析请求(
「POST /search?q=言序&q=web HTTP/1.1\r\nHost: localhost\r\nContent-Length: 6\r\nCookie: theme=dark」,
字节.从文字(「正文」)
);
言 请求.方法;
言 请求.路径;
言 请求.查询全部(「q」);
言 请求.Cookie值(「theme」);
定 响应 为 HTTP.JSON响应({「ok」:真})
.设首部(「cache-control」,「no-store」)
.添Cookie(HTTP.Cookie(「sid」,「opaque」).设安全(真).设同站(「Lax」));
定 线上字节 为 响应.编码();首部名称按大小写不敏感处理,查询和表单保留重复值。响应编码器独占长度、分块、连接和
Set-Cookie首部,并拒绝 NUL、CR、LF 注入。
资源预算
定 限制 为 HTTP.限制()
.设读取(3000,4096,32768,1048576)
.设首部项(64,8192,32)
.设分块(512,1024)
.设Multipart为(32,4096)
.设会话(50)
.验证();限制覆盖读取超时、请求行、首部区、单首部、正文、分块、尾部、Multipart 和单连接
请求数。冲突Content-Length、同时出现长度与传输编码、模糊编码、非法 Host 和走私形状
都会在应用处理器之前失败。
持久连接
定 会话 为 HTTP.连接会话为(连接,限制);
试 则
当 真 则
定 请求 为 会话.读取下一请求();
若 (请求 是 空) 则 断;终
会话.发送响应(请求,HTTP.JSON响应({「path」:请求.路径}));
若 非 会话.可复用() 则 断;终
终
救 所误 则
言 HTTP.错误详情(所误)【「代码」】;
终
会话.关闭();会话顺序处理 keep-alive 和流水线请求,保留超前读取字节,并支持临时 1xx、定长或分块 响应。达到预算、请求或响应要求关闭、对端结束时不再复用。
表单、Cookie 与升级
- URL 编码表单把名称映射到值列。
- Multipart 保留项顺序、重复字段、首部与文件字节,不自动落盘。
- Cookie 支持
__Host-、__Secure-、SameSite、Partitioned 和删除语义。 - WebSocket 边界验证 RFC 6455 版本 13、Origin 与子协议,并移交套接字和已缓冲字节。
- 升级通道不解析 WebSocket 帧、扩展、压缩或关闭握手。
权限、错误与限制
库清单只声明回环 TCP 监听;部署应用必须在自己的清单授权实际地址。库不申请文件、 出站网络、UDP、环境、进程或原生扩展权限。
稳定错误使用YANXUN_*代码,可通过HTTP.错误详情读取。1.0 不实现 TLS、HTTP/2、
HTTP/3、可信代理、并发调度、速率限制或应用背压;Multipart 是有界内存解析器。
仓库与完整协议文档:yanxulang/yanxu-http, 1.0.0 Release。需要路由和 中间件时继续阅读言枢。