一、網域名稱解析
一般我們訪問的url都是網域名稱,例如:需要將其解析為伺服器ip才能進行訪問。
搜尋瀏覽器自身的dns快取;
搜尋作業系統自身的dns快取;
讀取hosts檔案;
如果以上都沒有查詢到要訪問的url,就向dns伺服器發起乙個dns解析請求;
二、建立連線
tcp三次握手建立連線。
客戶端向伺服器傳送請求報文(sequence),告訴伺服器,我想跟你建立連線;
伺服器聽到連線請求報文後,如果同意建立連線,則向客戶端傳送確認(傳送確認acknowledge和sequence);
客戶端接收到之後,傳送確認(向伺服器傳送確認acknowledge);
此時,客戶端與伺服器確認可以互相傳送訊息。
三、發起http請求
四、伺服器響應請求返回結果
五、瀏覽器得到html標籤
六、瀏覽器解析html中的js/css等資源
七、瀏覽器對頁面進行渲染
八、斷開連線
四次揮手斷開連線。
假設伺服器和客戶端正在聊天,此時,某一方不想聊了,但是咱們是文明人,總得徵求對方的意見吧~
客戶端說:我不想跟你聊天兒了。
伺服器說:好,不聊可以,但是,你得讓我把話說完啊。
伺服器說:… …巴拉巴拉… … 好了,我想說的都說完了,我也不想跟你聊了。
客戶端:那我們分道揚鑣,江湖再見吧!
原理就是這樣的~
nginx處理http請求完整流程
在nginx的worker程序啟動後,便阻塞在epoll wait函式 ngx epoll process events 等待http請求的到來,那麼當乙個http請求到來之時,nginx是如何作出相應的呢?下面介紹該過程。首先,在ngx event process init函式中,可看到rev h...
MQ訊息完整流程
public class queuemanger 建立msmq佇列 佇列路徑 是否事務佇列 public static void createqueue string queuename,bool transactional false else catch messagequeueexceptio...
git上傳完整流程
一.比如,在自己電腦上新建了乙個專案,想上傳到git。自己做個筆記。完整流程如下 在專案資料夾下。啟動git控制塔,輸入git init git add 檔案 或者直接全部檔案 git commit m xx 這一步很關鍵,關鍵 很多人出錯在這一步,我也是 最後執行命令 git push origi...