面試 http請求從客戶端到伺服器整個鏈路的過程

2021-10-07 16:05:10 字數 646 閱讀 8900

瀏覽器會去請求dns伺服器,獲得與網域名稱相對應的ip(http協議&dns協議)(ip協議)

三次握手,建立tcp連線,形成乙個session會話(tcp、udp協議)

瀏覽器傳送request包,伺服器接收後對其進行解析。如果請求資源包含動態語言的內容,伺服器將會呼叫動態語言的解釋引擎進行解釋。

請求被**給乙個預定義的handler(處理器)。並可能從資料庫裡取出資料。

處理器根據取出的資料對template(模板)進行rander(渲染)

返回response物件

瀏覽器會渲染response包裡的主體。而且直到接收完response包前,瀏覽器和伺服器的tcp連線將保持連線。

其實上述幾層的網路協議實際上就是對我們要傳送資料的包裝,包裝的內容包括:

有什麼資料?(http/https)

————分為request、response 兩個部分

怎麼傳輸?(tcp/udp)

————tcp對應的是可靠性要求高的應用,而udp對應的則是可靠性要求低、傳輸經濟的應用。

兩台互動計算機的ip是什麼?(ip)

————ip協議是將多個包交換網路連線起來,它在源位址和目的位址之間傳送一種稱之為資料報的東西,說白了就是定址和分段

到伺服器端再經過一層層的解協議拿到真正的資料。

微服務從grpc到客戶端再到服務端

proto檔案如下 message prodholdinginforequest oneof check pageno oneof check pagelength oneof check total string sort 1005 排序條件 oneof check czr oneof check...

客戶端到伺服器的post請求

1 客戶端 a 連線方法 public string getdatefromservice context context,listuserpair,string filter catch exception e finally catch ioexception e finally return ...

nodejs使用http客戶端傳送請求

這裡使用乙個第三方模組,needle,其使用方式比nodejs自帶的http模組好用。package.json依賴 dependencies 在檔案頭部引用模組 const needle require needle 請求引數,json格式 const allparams needle.reques...