第 7 期 2018-05-24 線下活動 - Go 標準包閱讀
文章來自於:https://reading.developerlearning.cn/reading/7-2018-05-24-net-http-part1/
視訊回看
Go 標準包閱讀
Go 版本:go 1.10.1
net/http
- server.go
問題
- Next Protocol Negotiation = NPN
- Expect 100 Continue support
見參考資料
- header 提到了:Expect 和 host
- 判斷了 header 裡面的 HOST,但是後面又刪除,為什麼?
server.go#L980
delete(req.Header, "Host")
- 判斷是否支援 HTTP2 (isH2Upgrade)
// isH2Upgrade reports whether r represents the http2 "client preface"
// magic string.
func (r *Request) isH2Upgrade() bool {
return r.Method == "PRI" && len(r.Header) == 0 && r.URL.Path == "*" && r.Proto == "HTTP/2.0"
}
呼叫:ProtoAtLeast(1, 1)
...
// ProtoAtLeast reports whether the HTTP protocol used
// in the request is at least major.minor.
func (r *Request) ProtoAtLeast(major, minor int) bool {
return r.ProtoMajor > major ||
r.ProtoMajor == major && r.ProtoMinor >= minor
}
延伸閱讀
- https://github.com/golang/go/issues/22128
- https://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-26#section-6.2.1
- https://www.cnblogs.com/tekkaman/archive/2013/04/03/2997781.html
- https://benramsey.com/blog/2008/04/http-status-100-continue/
- http://www.ituring.com.cn/article/130844
更多原創文章乾貨分享,請關注公眾號
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 第 8 期 2018-05-31 線下活動 - Go 標準包閱讀Go
- 第 31 期 flag 包原始碼閱讀原始碼
- 第 27 期 go mod 原始碼閱讀 part 2Go原始碼
- Go標準包-http包serverGoHTTPServer
- Go標準包—http clientGoHTTPclient
- Go標準包——net/rpc包的使用GoRPC
- 第 35 期 context 原始碼閱讀Context原始碼
- Go標準庫flag包的“小陷阱”Go
- go標準庫-log包原始碼學習Go原始碼
- Swift標準庫原始碼閱讀筆記 - DictionarySwift原始碼筆記
- Go基礎系列:讀取標準輸入Go
- 今天3點,15年行業經驗大咖線上解讀:標準如何助力開源發展 | 第 55 期行業
- 第 6 期 Arthas 徵文活動開啟!(內附第 5 期獲獎名單)
- Swift標準庫原始碼閱讀筆記 - Array和ContiguousArraySwift原始碼筆記
- Android 進階之旅 | JTalk 掘金線下活動第四期Android
- 怎麼提高go讀取標準輸入的速度Go
- 第 36 期 k8s context 實踐原始碼閱讀K8SContext原始碼
- Go標準庫ContextGoContext
- 《葉問》第7期
- 閱讀筆記7筆記
- 前端安全大起底 | JTalk 掘金線下活動第八期前端
- [Go 夜讀 第 139 期] Go 語言 Excelize 開源基礎庫介紹GoExcelize
- buffer 原始碼包閱讀原始碼
- 第 67 期 Go database/sql 資料庫連線池分析GoDatabaseSQL資料庫
- Go 的 golang.org/x/ 系列包和標準庫包有什麼區別?Golang
- JDK原始碼閱讀(7):ConcurrentHashMap類閱讀筆記JDK原始碼HashMap筆記
- 每週分享第 7 期
- Go標準庫:Go template用法詳解Go
- spring原始碼閱讀環境(幾分鐘下載包)Spring原始碼
- go package官方文件閱讀方式GoPackage
- go 中 select 原始碼閱讀Go原始碼
- Go Wednesday活動提案Go
- go語言標準庫 - timeGo
- go語言標準庫 - strconvGo
- go語言標準庫 - regexpGo
- go語言標準庫 - logGo
- NEP-6錢包標準
- 每週分享第 7 期(20181221)