真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Golang中利用http.FileServer返回靜態(tài)文件-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么在Golang中利用http.FileServer返回靜態(tài)文件,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

貢山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

Golang中使用http.FileServer

使用http.FileServer可以管理向瀏覽器返回靜態(tài)文件

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安全版本的實現(xiàn),在http與tcp之間加了一層ssl/tls安全傳輸協(xié)議

為了防止請求被監(jiān)聽、篡改、冒充,在tls實現(xiàn)過程中引入了數(shù)字證書機制,數(shù)字證書由第三方權(quán)威機構(gòu)提供保證。

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

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

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

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

怎么在Golang中利用http.FileServer返回靜態(tài)文件

下面分析一下golang中如何實現(xiàn)的https握手

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

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

設(shè)置服務(wù)器證書

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) // 生成服務(wù)端摘要信息
c.writeRecord(recordTypeHandshake, helloDone.marshal()) //發(fā)送helloDone信息
preMasterSecret, err := keyAgreement.processClientKeyExchange(config, hs.cert, ckx, c.vers) // 處理獲取由客戶端生成的第三個隨機數(shù)
hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random) // 生成通信秘鑰
hs.finishedHash.Write() // 服務(wù)端發(fā)送最后一次確認請求

上述就是小編為大家分享的怎么在Golang中利用http.FileServer返回靜態(tài)文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站題目:怎么在Golang中利用http.FileServer返回靜態(tài)文件-創(chuàng)新互聯(lián)
標題URL:http://weahome.cn/article/deceoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部