前端(伺服器應答)

2021-10-04 16:30:28 字數 2888 閱讀 4446

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 手...