婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在Golang中使用http.FileServer返回靜態文件的操作

在Golang中使用http.FileServer返回靜態文件的操作

熱門標簽:官渡電銷外呼管理系統怎么收費 400開頭電話怎樣申請 赤峰電銷 谷歌美發店地圖標注 杭州人工智能電銷機器人費用 江蘇呼叫中心外呼系統有效果嗎 貴州電話智能外呼系統 利用地圖標注位置 地圖區域圖標注后導出

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中如何實現的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() // 服務端發送最后一次確認請求

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • [Asp.Net Core]用Blazor Server Side實現圖片驗證碼
  • [Asp.Net Core] 淺談Blazor Server Side
  • Ant Design Blazor 組件庫的路由復用多標簽頁功能
  • HTTP中header頭部信息詳解
  • Golang簡單實現http的server端和client端
  • IOS利用CocoaHttpServer搭建手機本地服務器
  • Golang實現http server提供壓縮文件下載功能
  • 基于http.server搭建局域網服務器過程解析
  • golang的httpserver優雅重啟方法詳解
  • Blazor Server 應用程序中進行 HTTP 請求

標簽:黔西 保定 河池 泰安 武漢 鷹潭 松原 宜春

巨人網絡通訊聲明:本文標題《在Golang中使用http.FileServer返回靜態文件的操作》,本文關鍵詞  在,Golang,中,使用,http.FileServer,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Golang中使用http.FileServer返回靜態文件的操作》相關的同類信息!
  • 本頁收集關于在Golang中使用http.FileServer返回靜態文件的操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 斗六市| 泰兴市| 昌黎县| 梨树县| 巴楚县| 福海县| 长垣县| 建宁县| 惠安县| 冕宁县| 会理县| 论坛| 石景山区| 莱州市| 赤壁市| 彝良县| 新建县| 册亨县| 阿勒泰市| 张家港市| 巴彦淖尔市| 象州县| 桂阳县| 莱芜市| 呼和浩特市| 连江县| 大同市| 甘泉县| 阿城市| 临高县| 乌鲁木齐县| 南宁市| 天祝| 克什克腾旗| 蕲春县| 沅陵县| 漯河市| 盈江县| 华亭县| 纳雍县| 石台县|