我想了解在使用網站時後臺發生了什麼事情,或者基本上當用戶與瀏覽器交互時會發生什麼事情。我知道這是一個龐大的列表,並且高度依賴於架構和用戶操作等,我只是想了解一些重要的事情,並消除我的誤解,並用它來閱讀更多關於我不瞭解的內容。網站是如何工作的/現場發生的事情
作爲一個練習,我試圖記錄下與用戶在瀏覽器中的操作有關的背景。這是我在此位的嘗試開放式的,但有趣的問題:
用戶輸入一個URL =>瀏覽器檢查 在瀏覽器緩存中可用=> DNS查詢 了[根DNS查找=> DNS遞歸 =>獲得IP] =>建立一個TCP連接=>發送HTTP REQ =>得到 從Web服務器靜態頁面=>如果 認證要求 發生[無論是從 瀏覽器讀取cookie或要求用戶輸入 憑據] = >以某種方式獲得 動態元素以及[如何? , 有一些懶惰動初始化這裏 ?] =>然後用戶執行某些 動作[點擊一個鏈接或東西] => 檢查瀏覽器緩存=>如果不利用 [獲取輸入參數,並在URL中嵌入 某種方式[可以是 加密一些事情,如果需要] => 命中負載平衡器=>定向到 應用服務器[取決於 的LB如何選擇一個主機] =>應用 服務器高速緩存被選中[分佈式緩存或 某種緩存,不確定這個 「正常」發生在這裏還是某個 其他級別] =>應用服務器 嘗試理解請求[如果 其服務監聽某個端口上, http端口80將得到URL和 解析做一些操作,如果需要=> 有可能再次成爲連接 MGMT => 查詢數據庫/緩存/並行查詢等 =>數據庫將結果返回給應用服務器=>應用服務器創建一個 結果有效負載和標頭[http] => 將其發送到瀏覽器進行呈現=> 瀏覽器緩存更新=>用戶 對響應作出反應。
我還沒有考慮重試/失敗,它們是如何處理的,但我想獲得一些輸入有作爲一般意義上
注:
我在看的東西一般來說,我相信很少有公司可以用不同的方式來做等等。我也希望聽到替代品,但是!
- 這是嘗試,並獲得更多 的視角和對幾件事情 ,這將幫助我在讀一般的努力。
- 顯然,我做了一個誠實的努力
- 我也希望這將有助於其他 一般看問題 學到新的東西。
- 我不要求 徵求意見等,所以這是不是一個 完全開放式的問題[不 一切都是正確的,雖然有很多 選項]
謝謝!
我認爲這太開放了,無論如何,SO是錯誤的地方,因爲它不是一個*編程*問題。 – 2011-06-04 22:30:43
我試圖讓它具體化,並給出了人們可以添加的初始流程。 Imho有人可以清楚地添加並從中獲得價值。如果有任何建議以不同的方式表達這一點,我會很感激。 – codeObserver 2011-06-04 22:32:44
@Kirk Woll:或者,有沒有推薦的地方可以問一些開放式的問題,我發現很多人都有真實的生活經驗,所以他們可以從經驗中回答最好的問題。謝謝 – codeObserver 2011-06-04 22:51:17