服务端推送
Starlette 包含对 HTTP/2 和 HTTP/3 服务器推送的支持,使得能够将资源推送到客户端以加快页面加载时间。
Request.send_push_promise
用于为资源启动服务器推送。如果服务器推送不可用,则此方法不执行任何操作。
签名: send_push_promise(path)
-
path
- 表示资源路径的字符串。from starlette.applications import Starlette from starlette.responses import HTMLResponse from starlette.routing import Route, Mount from starlette.staticfiles import StaticFiles
async def homepage(request): """ Homepage which uses server push to deliver the stylesheet. """ await request.send_push_promise("/static/style.css") return HTMLResponse( '
' )routes = [ Route("/", endpoint=homepage), Mount("/static", StaticFiles(directory="static"), name="static") ]
app = Starlette(routes=routes)