TsgcWebSocketHTTPServer方法 › PushPromiseAddPreLoadLinks

PushPromiseAddPreLoadLinks 方法

注册一条 HTTP/2 服务器推送规则,当服务满足匹配的请求路径时,预加载一组相关资源。

语法

procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);

参数

名称类型描述
aPathMatchconst String触发推送的请求路径,例如 /index.html。当客户端通过 HTTP/2 请求此资源时,服务器也会推送为其注册的链接。
aLinksconst TStrings资源路径列表(每行一个),将与匹配请求一起推送,例如主文档引用的样式表、脚本或图像。

备注

PushPromiseAddPreLoadLinks 向内部 HTTP/2 推送承诺表追加新条目。每当 HTTP/2 客户端请求 aPathMatch 指定的路径时,服务器在发送主响应之前,为 aLinks 中的每个链接发送 PUSH_PROMISE 帧,以便客户端无需额外往返即可填充缓存;完整工作流程请参阅 HTTP/2 Server Push。链接列表会被复制,因此调用方在调用后可自由释放所提供的 TStrings。推送承诺仅在通过 ALPN 协商的 HTTP/2 连接上生效;HTTP/1.1 客户端接收主响应但不包含承诺的资源。调用 PushPromiseRemovePreLoadLinks 可删除该规则。

示例


oServer := TsgcWebSocketHTTPServer.Create(nil);
oLinks := TStringList.Create;
try
  oLinks.Add('/styles.css');
  oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
  oLinks.Free;
end;

返回方法