91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Golang中利用http.FileServer返回靜態文件

發布時間:2020-12-18 13:52:52 來源:億速云 閱讀:179 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關怎么在Golang中利用http.FileServer返回靜態文件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Golang中使用http.FileServer

使用http.FileServer可以管理向瀏覽器返回靜態文件

http.Handle("/",http.FileServer(http.Dir("/Users/administrator/Desktop/public")))
err := http.ListenAndServe("0.0.0.0:8080",nil)
if err!=nil{
  fmt.Print(err);
}

補充:golang https server分析

https:

HTTPS是http安全版本的實現,在http與tcp之間加了一層ssl/tls安全傳輸協議

為了防止請求被監聽、篡改、冒充,在tls實現過程中引入了數字證書機制,數字證書由第三方權威機構提供保證。

數字證書原理是采用非對稱加密生成一對公鑰、私鑰,服務端保存私鑰,下發公鑰給客戶端,由于非對稱加密計算量比較大,

所以https通信過程中,通過客戶端與服務端的握手交互產生三次隨機碼,從而生成一個相對安全的對稱加密密碼,密碼通過非對稱加密下發給客戶端,從而完成加密通信

https本質上還是tcp通信,所以https的捂手是在建立tcp連接后,進行的一系列校驗而已,

在處理tcp conn連接的過程中,會判斷連接類型是不是tls類型,如果是會進入tlsConn.serverHandshake()握手過程。詳細流程如下:

怎么在Golang中利用http.FileServer返回靜態文件

下面分析一下golang中如何實現的https握手

在建立tlsConn連接后,服務端新起一個goroutine處理,

config.serverInitOnce.Do(config.serverInit) // 產生一個隨機數作為通信憑證,下次通信時憑證校驗通過后直接通信,校驗不通過重新建立連接
msg, err := c.readHandshake() // 解析clientHello信息,此時獲取到由客戶端生成的第一個隨機數
c.vers, ok = config.mutualVersion(hs.clientHello.vers) // 檢查客戶端與服務端tls版本是否一致
_, err = io.ReadFull(config.rand(), hs.hello.random) // 服務端產生第二個隨機數
hs.setCipherSuite(id, supportedList, c.vers) // 確認加密算法

設置服務器證書

hs.cert, err = config.getCertificate(&ClientHelloInfo{
CipherSuites: hs.clientHello.cipherSuites,
ServerName: hs.clientHello.serverName,
SupportedCurves: hs.clientHello.supportedCurves,
SupportedPoints: hs.clientHello.supportedPoints,
});
skx, err := keyAgreement.generateServerKeyExchange(config, hs.cert, hs.clientHello, hs.hello) // 生成服務端摘要信息
c.writeRecord(recordTypeHandshake, helloDone.marshal()) //發送helloDone信息
preMasterSecret, err := keyAgreement.processClientKeyExchange(config, hs.cert, ckx, c.vers) // 處理獲取由客戶端生成的第三個隨機數
hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random) // 生成通信秘鑰
hs.finishedHash.Write() // 服務端發送最后一次確認請求

上述就是小編為大家分享的怎么在Golang中利用http.FileServer返回靜態文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翁源县| 土默特右旗| 堆龙德庆县| 静安区| 长顺县| 如皋市| 曲靖市| 鄢陵县| 班玛县| 宝应县| 兴业县| 油尖旺区| 桂阳县| 灵寿县| 三台县| 中西区| 濮阳县| 监利县| 武隆县| 宁强县| 华亭县| 连南| 峨边| 华宁县| 彝良县| 柘城县| 宜丰县| 二连浩特市| 马山县| 农安县| 大厂| 临清市| 肇源县| 平利县| 通许县| 运城市| 织金县| 衢州市| 攀枝花市| 买车| 新民市|