TsgcWebSocketLoadBalancerServer › 메서드 › PushPromiseAddPreLoadLinks
일치하는 요청 경로가 로드 밸런서에 의해 제공될 때마다 일련의 관련 리소스를 사전 로드하는 HTTP/2 Server Push 규칙을 등록합니다.
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| Name | Type | 설명 |
|---|---|---|
aPathMatch | const String | 푸시를 트리거하는 요청 경로입니다(예: /index.html). 클라이언트가 HTTP/2를 통해 이 리소스를 요청하면 로드 밸런서도 이에 등록된 링크를 푸시합니다. |
aLinks | const TStrings | 스타일시트, 스크립트 또는 기본 문서가 참조하는 이미지와 같이 일치하는 요청과 함께 푸시될 리소스 경로 목록(한 줄에 하나)입니다. |
PushPromiseAddPreLoadLinks는 로드 밸런서가 백업 HTTP 서버와 공유하는 내부 HTTP/2 push-promise 테이블에 새 항목을 추가합니다. HTTP/2 클라이언트가 aPathMatch로 지정된 경로를 요청할 때마다, 요청을 처리하는 노드는 메인 응답 전에 aLinks의 모든 링크에 대해 PUSH_PROMISE 프레임을 발행하므로, 클라이언트는 추가 왕복 없이 캐시를 채울 수 있습니다. 전체 워크플로는 HTTP/2 Server Push를 참조하십시오. 링크 목록은 복사되므로, 호출자는 호출 후 제공된 TStrings를 자유롭게 해제할 수 있습니다. Push promise는 ALPN을 통해 협상된 HTTP/2 연결에서만 적용됩니다. HTTP/1.1 클라이언트는 약속된 리소스 없이 메인 응답을 수신합니다. 규칙을 삭제하려면 PushPromiseRemovePreLoadLinks를 호출하십시오.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oLinks := TStringList.Create;
try
oLinks.Add('/styles.css');
oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
oLinks.Free;
end;