W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
從 Micronaut 2.x 開始,Micronaut 基于 Netty 的 HTTP 服務(wù)器可以配置為支持 HTTP/2。
為 HTTP/2 配置服務(wù)器
第一步是在服務(wù)器配置中設(shè)置支持的 HTTP 版本:
啟用 HTTP/2 支持
Properties | Yaml | Toml | Groovy | Hocon | JSON |
|
|
|
|
|
|
通過此配置,Micronaut 啟用了對(duì) h2c 協(xié)議的支持(請(qǐng)參閱 HTTP/2 over cleartext),這非常適合開發(fā)。
由于瀏覽器不支持 h2c 和一般的 HTTP/2 over TLS(h2 協(xié)議),建議在生產(chǎn)環(huán)境中啟用 HTTPS 支持。對(duì)于開發(fā),這可以通過以下方式完成:
啟用 h2 協(xié)議支持
Properties | Yaml | Toml | Groovy | Hocon | JSON |
|
|
|
|
|
|
對(duì)于生產(chǎn),請(qǐng)參閱文檔的配置 HTTPS 部分。
請(qǐng)注意,如果您的部署環(huán)境使用 JDK 8,或者為了改進(jìn)對(duì) OpenSSL 的支持,請(qǐng)?jiān)?nbsp;Netty Tomcat Native 上定義以下依賴項(xiàng):
Gradle | Maven |
|
|
Gradle | Maven |
|
|
除了對(duì)適合您的體系結(jié)構(gòu)的本機(jī)庫(kù)的依賴。例如:
配置 Tomcat 本機(jī)
runtimeOnly "io.netty:netty-tcnative-boringssl-static:2.0.58.Final:${Os.isFamily(Os.FAMILY_MAC) ? (Os.isArch("aarch64") ? "osx-aarch_64" : "osx-x86_64") : 'linux-x86_64'}"
有關(guān)詳細(xì)信息,請(qǐng)參閱有關(guān) Tomcat Native 的文檔。
HTTP/2 服務(wù)器推送支持
Micronaut 框架 3.2 中添加了對(duì)服務(wù)器推送的支持。服務(wù)器推送允許單個(gè)請(qǐng)求觸發(fā)多個(gè)響應(yīng)。這最常用于基于瀏覽器的資源。目標(biāo)是改善客戶端的延遲,因?yàn)樗麄儾槐卦偈謩?dòng)請(qǐng)求該資源,并且可以節(jié)省往返時(shí)間。
已創(chuàng)建一個(gè)新接口 PushCapableHttpRequest 來支持該功能。只需將 PushCapableHttpRequest 參數(shù)添加到控制器方法并使用其 API 來觸發(fā)其他請(qǐng)求。
PushCapableHttpRequest 擴(kuò)展了 HttpRequest,因此沒有必要在控制器方法中將兩者都作為參數(shù)。
在觸發(fā)其他請(qǐng)求之前,應(yīng)調(diào)用 isServerPushSupported() 方法以確保該功能可用。一旦知道支持該功能,請(qǐng)使用 serverPush(HttpRequest) 方法觸發(fā)其他請(qǐng)求。例如:request.serverPush(HttpRequest.GET("/static/style.css")))。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: