激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識(shí) - Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

2020-06-18 00:13今日頭條黑客之家 服務(wù)器知識(shí)

本篇文章從tcp協(xié)議開始介紹,之后使用tcp socket按照http協(xié)議格式發(fā)送數(shù)據(jù)到客戶端,這里的客戶端指的就是瀏覽器。

本篇文章主要介紹go語言基于tcp協(xié)議實(shí)現(xiàn)簡(jiǎn)單的http服務(wù)器,大家可以學(xué)習(xí)到:

1.怎樣實(shí)現(xiàn)一個(gè)簡(jiǎn)單的http服務(wù)器

2.通過錯(cuò)誤的http協(xié)議格式加深對(duì)http協(xié)議的理解

平時(shí)我們使用的http服務(wù)器,如:apache、nginx都是一個(gè)完整而且功能強(qiáng)大的服務(wù)器,如果我們不去看源碼無法很好地理解http服務(wù)器的內(nèi)部實(shí)現(xiàn)。如果我們不去自己實(shí)現(xiàn)一個(gè)簡(jiǎn)單的http服務(wù)器,可能就無法很好地理解http協(xié)議,我們學(xué)習(xí)應(yīng)該不僅要知其然還要知其所以然。

本篇文章從tcp協(xié)議開始介紹,之后使用tcp socket按照http協(xié)議格式發(fā)送數(shù)據(jù)到客戶端,這里的客戶端指的就是瀏覽器。

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。

tcp協(xié)議屬于傳輸層協(xié)議,http協(xié)議屬于應(yīng)用層協(xié)議,http協(xié)議位于tcp協(xié)議之上,也是http協(xié)議是基于tcp協(xié)議實(shí)現(xiàn)的。很多應(yīng)用層協(xié)議都是基于tcp協(xié)議實(shí)現(xiàn)的,如:文件傳輸協(xié)議ftp、ssh協(xié)議、telenet協(xié)議等。

下面開始我們的編程之旅!

首先監(jiān)聽本地tcp 8888端口

listen, err := net.Listen("tcp", "127.0.0.1:8888")

之后打印監(jiān)聽信息

fmt.Println("server start listening on port 8888")

接著延時(shí)關(guān)閉tcp流

defer listen.Close()

之后for循環(huán)進(jìn)入監(jiān)聽,如果有連接進(jìn)來啟動(dòng)goroutine進(jìn)行處理

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

go

接著我們來看下handleClient函數(shù)的實(shí)現(xiàn)

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

go

handleClient函數(shù)里面首先定義了響應(yīng)體,打印響應(yīng)體的長度。之后定義響應(yīng)頭,響應(yīng)頭以“HTTP/1.1 200 OK\n”開始,這是http協(xié)議的標(biāo)準(zhǔn)響應(yīng)頭,之后定義響應(yīng)類型和響應(yīng)體的長度。響應(yīng)頭和響應(yīng)體之間以“\n\r\n”分割。

最后以字節(jié)格式發(fā)送給瀏覽器。

下面我們來看下執(zhí)行效果吧!在瀏覽器中輸入

http://127.0.0.1:8888/

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

瀏覽器

可以看到瀏覽器中顯示出我們啟動(dòng)的服務(wù)器返回的數(shù)據(jù)。Response Headers中的響應(yīng)頭正是我們?cè)O(shè)置的。

恭喜你,完成了自己的http服務(wù)器!

但是凡事我們要舉一反三,我們?cè)賮碓囈幌氯绻鹔ttp狀態(tài)是500時(shí),返回的結(jié)果是什么?

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

http

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

瀏覽器

這個(gè)http 500就是我們?cè)陂_發(fā)中經(jīng)常遇到的,現(xiàn)在我們自己模擬實(shí)現(xiàn)了。

我們可以嘗試去掉響應(yīng)頭和響應(yīng)體之間的分隔符

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

http

我們看下結(jié)果

Tcp協(xié)議實(shí)現(xiàn)HTTP服務(wù)器,帶你理解HTTP協(xié)議

瀏覽器

結(jié)果是瀏覽器無法識(shí)別,這就是為什么會(huì)有http協(xié)議,先規(guī)定協(xié)議各家瀏覽器按照協(xié)議實(shí)現(xiàn),這樣就不會(huì)出現(xiàn)問題。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩av有码在线 | 国产91小视频在线观看 | 久草在线综合 | 蜜桃av网| 中文字幕免费在线观看视频 | 欧美自拍三区 | 天天色狠狠干 | 精品一区二区三区在线观看视频 | 免费a级黄色片 | 91精品影视| 免费网站看毛片 | 国产成人精品一区二区仙踪林 | 在线成人亚洲 | 久久精品视频国产 | 中文字幕精品在线播放 | 国产一区二区三区在线观看视频 | 欧美久久久一区二区三区 | 在线成人免费视频 | 性盈盈盈影院 | 欧洲精品色 | 毛片在线免费视频 | 欧洲精品久久久 | 久久av喷吹av高潮av懂色 | 欧美hdfree性xxxx | 国产精品久久久久久婷婷天堂 | 日韩精品久久久久久久电影99爱 | 免费国产自久久久久三四区久久 | 中文字幕综合在线观看 | 欧美一级高潮片免费的 | 日韩欧美激情视频 | 亚洲性生活视频 | 全黄性性激高免费视频 | 亚洲成人精品在线 | 91精品国产福利尤物免费 | 亚洲欧美国产高清 | 极品xxxx欧美一区二区 | 日本黄色一级视频 | 日本在线不卡一区二区 | 草操视频 | 精品视频在线免费看 | 久久新地址 |