1.1 輸入**:
當你開始輸入**比如www.cnblogs.com時瀏覽器就可以在書籤或者歷史記錄裡面
1.2.1 請求發起後,瀏覽器首先會解析這個網域名稱,首先它會檢視本地硬碟的 hosts 文
件,看看其中有沒有和這個網域名稱對應的規則,如果有的話就直接使用 hosts 檔案
裡面的 ip 位址。
1.2.2 如果在本地的 hosts 檔案沒有能夠找到對應的 ip 位址,瀏覽器會發出乙個
dns請求到本地dns(網域名稱分布系統)伺服器 。本地dns伺服器一般都是你的網路
接入伺服器商提供,比如中國電信,中國移動。
1.2.3 查詢你輸入的**的dns請求到達本地dns伺服器之後,本地dns伺服器會
首先查詢它的快取記錄,如果快取中有此條記錄,就可以直接返回結果,此過程
是遞迴的方式進行查詢。如果沒有,本地dns伺服器還要向dns根伺服器進行查
詢。1.2.4 根dns伺服器沒有記錄具體的網域名稱和ip位址的對應關係,而是告訴本地dns服
務器,你可以到域伺服器上去繼續查詢,並給出域伺服器的位址。這種過程是迭
代的過程。
1.2.5 本地dns伺服器繼續向域伺服器發出請求,在這個例子中,請求的物件
是.com域伺服器。.com域伺服器收到請求之後,也不會直接返回網域名稱和ip位址的
對應關係,而是告訴本地dns伺服器,你的網域名稱的解析伺服器的位址。
1.2.6 最後,本地dns伺服器向網域名稱的解析伺服器發出請求,這時就能收到乙個網域名稱
和ip位址對應關係,本地dns伺服器不僅要把ip位址返回給使用者電腦,還要把這
個對應關係儲存在快取中,以備下次別的使用者查詢時,可以直接返回結果,加快
網路訪問。
1.3 建立tcp鏈結
在拿到網域名稱對應的ip位址後,會以隨機埠(1024~65535)向web伺服器程式80
埠發起tcp的連線請求,這個連線請求進入到核心的tcp/ip協議棧(用於識別該
連線請求,解封包,一層一層的剝開),還有可能要經過netfilter防火牆(屬於核心
的模組)的過濾,最終到達web程式,最終通過三次握手建立了tcp/ip的連線。
1.4 瀏覽器向web伺服器發起http請求
建立tcp連線之後,發起http請求,請求一般分為三部分
請求方法uri協議/版本
請求頭(request header)
請求正文
1.5 伺服器端處理
伺服器端收到請求後的由web伺服器(準確說應該是http伺服器)處理請求,諸如
apache、ngnix、iis等。web伺服器解析使用者請求,知道了需要排程哪些資源文
件,再通過相應的這些資源檔案處理使用者請求和引數,並呼叫資料庫資訊,最後將
結果通過web伺服器返回給瀏覽器客戶端。
1.6 關閉tcp鏈結
為了避免伺服器與客戶端雙方的資源占用和損耗,當雙方沒有請求或響應傳遞時,
任意一方都可以發起關閉請求。與建立tcp連線的3次握手類似,關閉tcp連線,需
要4次握手。
1.7 瀏覽器解析資源
對於獲取到的html、css、js、等等資源。瀏覽器通過解析html,生成
dom樹,解析css,生成css規則樹,然後通過dom樹和css規則樹生成渲染
樹。渲染樹與dom樹不同,渲染樹中並沒有head、display為none等不必顯示的節
點。在解析css的同時,可以繼續載入解析html,但在解析執行js指令碼時,會停
止解析後續html,這就會出現阻塞問題。
1.8 瀏覽器布局渲染
根據渲染樹布局,計算css樣式,即每個節點在頁面中的大小和位置等幾何資訊。
2.1 1xx(臨時響應)
100:請求者應當繼續提出請求。
101(切換協議) 請求者已要求伺服器切換協議,伺服器已確認並準備進行切換。
2.2 2xx(成功)
200:正確的請求返回正確的結果,如果不想細分正確的請求結果都可以直接返回
200。
201:表示資源被正確的建立。比如說,我們 post 使用者名稱、密碼正確建立了乙個
使用者就可以返回 201。
202:請求是正確的,但是結果正在處理中,這時候客戶端可以通過輪詢等機制繼續
請求。203:請求的**伺服器修改了源伺服器返回的 200 中的內容,我們通過**服務
器向伺服器 a 請求使用者資訊,伺服器 a 正常響應,但**伺服器命中了快取並返回
了自己的快取內容,這時候它返回 203 告訴我們這部分資訊不一定是最新的,我們
可以自行判斷並處理。
2.3 3xx(已重定向)
300:請求成功,但結果有多種選擇。
去到新的位址。
304:請求的資源並沒有被修改過。
2.4 4xx(請求錯誤)
400:請求出現錯誤,比如請求頭不對等。
401:沒有提供認證資訊。請求的時候沒有帶上 token 等。
402:為以後需要所保留的狀態碼。
403:請求的資源不允許訪問。就是說沒有許可權。
404:請求的內容不存在。
406:請求的資源並不符合要求。
408:客戶端請求超時。
413:請求體過大。
415:型別不正確。
416:請求的區間無效。
2.5 5xx(伺服器錯誤)
500:伺服器錯誤。
501:請求還沒有被實現。
502:閘道器錯誤。
503:服務暫時不可用。伺服器正好在更新**重啟。
505:請求的 http 版本不支援。
前端伺服器安裝
針對ubuntu系統安裝前端伺服器的命令 第一步 安裝nvm npm curl o bash 第二步 安裝node nvm install node 第三步 安裝live server npm install g live server 第四步 將前端頁面的html頁面,css,js,整合成乙個資料...
Apache服務 前端伺服器配置
一 重要概念 虛擬主機 virtualhost 對外開的虛擬主機和埠號 vhosts.conf 虛擬主機配置檔案 workers.properties worker的配置檔案,tomcat 或其他伺服器 的連線池配置 hosts 本地host檔案,做本地的網域名稱對映,網域名稱解析會首先找到這個檔案...
前端部署nginx伺服器
linux版本 centos7 64位 1 安裝前先檢視nginx有無安裝 yum list grep nginx,或者yum list installed grep nginx 如果已經安裝了,則會出現 的標識 未安裝情況下 已安裝情況下 2 安裝nginx yum install nginx 手...