生态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.限制()
    .设读取30004096327681048576
    .设首部项64819232
    .设分块5121024
    .设Multipart为324096
    .设会话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-http1.0.0 Release。需要路由和 中间件时继续阅读言枢