本文介紹了Netty服務(wù)器如何通過(guò)單個(gè)端口同時(shí)支持http和HTTPS協(xié)議?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我們知道,我們提供http service
監(jiān)聽(tīng)80端口,https service
監(jiān)聽(tīng)443端口。為什么我們不在一個(gè)港口上提供兩種服務(wù)呢?具體原因是什么?Netty服務(wù)器如何通過(guò)單個(gè)端口同時(shí)支持http和HTTPS協(xié)議?
推薦答案
您可以這樣做,但我認(rèn)為這不是一個(gè)好主意,因?yàn)閮蓚€(gè)端口都為Http或HTTPS定義得很好。也就是說(shuō),如果您真的想這樣做,您可以根據(jù)消息的前5個(gè)字節(jié)檢測(cè)是否使用了SSL,然后動(dòng)態(tài)注入SSL處理程序。
Netty本身包括OptionalSslHandler
,它正好為您完成此操作:
https://github.com/netty/netty/blob/netty-4.1.32.Final/handler/src/main/java/io/netty/handler/ssl/OptionalSslHandler.java
這篇關(guān)于Netty服務(wù)器如何通過(guò)單個(gè)端口同時(shí)支持http和HTTPS協(xié)議?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,