日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML前端连接go语言后段,一次完整的浏览器请求响应过程-Go语言中文社区

發布時間:2023/12/20 HTML 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML前端连接go语言后段,一次完整的浏览器请求响应过程-Go语言中文社区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

本篇博客旨在理解在瀏覽器中輸入url地址后,瀏覽器和服務器之間都干了些什么。

整個流程如下:

域名解析,獲取IP地址

建立TCP連接,瀏覽器發送html請求

服務器web相應,發回html響應

釋放TCP連接,瀏覽器解析html,渲染呈現頁面

域名解析,獲取IP地址

輸入網址后,瀏覽器會根據域名獲取IP地址。怎么獲取IP地址呢?

瀏覽器要首先獲取DNS。那什么是DNS呢?

DNS(Domain Name System)即網絡名稱系統,它是一個將域名和IP地址相互映射的分布式數據庫。簡單地說,DNS就是一種域名和IP地址查對表,通過搜尋DNS法則,獲得當前域名對應的IP地址,反之亦然。

瀏覽器查詢DNS緩存的方式采用遞進式查找,即

瀏覽器緩存–>系統緩存–>路由器緩存–>ISP DNS緩存

建立TCP連接,瀏覽器發送html請求

瀏覽器通過DNS查找到url對應的ip地址之后,通過握手協議與服務器建立TCP連接,隨后向服務器發送http請求。

建立TCP連接

socket

socket是對TCP/IP協議的封裝,本身不是一個協議,而是一個調用接口(API),是對TCP/IP協議的抽象,提供了方便的基本函數接口。

socket建立連接

建立socket連接至少需要一對*套接字,其中一個運行在客戶端,稱為ClientSocket。另一個運行在服務器端,稱為ServerSocket。

套接字連接過程如下:

1. 服務器監聽:服務器端處于實時監控狀態,等待客戶端連接請求。

2. 客戶端請求:客戶端套接字提出連接請求,提供要連接的服務器套接字的地址和端口號。

3. 連接確認:當服務器監聽到客戶端請求后,就建立一個新的線程,把服務器端套接字的描述發送給客戶端,等待客戶端確認。建立連接后,服務器繼續保持監聽狀態,等待接受其他客戶端套接字請求。

請求報文

一個http請求報文由請求行< request-line >、請求頭部< headers >、空行< blank-line >、請求數據< request-body >4個部分組成。下圖是請求報文的一般格式。

請求行

請求行由請求方法字段、URL字段、HTTP協議版本三個字段組成,用空格分開。例如

GET /index.html HTTP/1.1

#常見的請求方法除了GET還有POST,兩者區別是前者將數據存放在url中并以?間隔,后者將數據封裝在HTTP請求數據中,以名稱/值的形式出現。

請求頭部

請求頭部通知服務器有關客戶端請求的信息,由關鍵字/值對組成,每行一對,關鍵字和值之間用:分隔。

空行

最后一個請求頭部之后需要一個空行,發送回車符和換行符,通知服務器以下不再有請求頭部。

請求數據

請求數據不用于GET方法 ,而用于POST方法中。

服務器web相應,發回html響應

響應報文

一個http響應報文由狀態行< status-line >、響應頭部< headers >、空行< blank-line >和響應數據< response-body >4個部分組成,響應報文的一般格式如下圖:

狀態行

狀態行由HTTP協議版本、服務器返回的響應狀態碼以及對應的文本描述組成。

狀態碼由三位數字組成,第一位定義了響應的類別。

1xx:信息性狀態碼,表示服務器已接收了客戶端請求,客戶端可繼續發送請求。

2xx:成功狀態碼,表示服務器已成功接收到請求并進行處理。

3xx:重定向狀態碼,表示服務器要求客戶端重定向。

4xx:客戶端錯誤狀態碼,表示客戶端的請求有非法內容。

5xx:服務器錯誤狀態碼,表示服務器未能正常處理客戶端的請求而出現意外錯誤。

響應頭部

語法規則與請求頭部相同,略。

空行

響應數據

服務器返回給客戶端的文本信息。

釋放TCP連接,瀏覽器解析html,渲染呈現頁面

略。

參考文獻

總結

以上是生活随笔為你收集整理的HTML前端连接go语言后段,一次完整的浏览器请求响应过程-Go语言中文社区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。