App下載

瀏覽器如何獲得頁面?——網(wǎng)頁請求的完整過程解析

猿友 2021-06-16 14:55:21 瀏覽數(shù) (6357)
反饋

對于后端初學者而言,http請求響應是每個初學者繞不開的知識點。因為只有了解了瀏覽器訪問一個網(wǎng)站的過程,才能學會如何去搭建后端來實現(xiàn)這個過程。所以今天小編就著瀏覽器訪問一個網(wǎng)站的過程,來好好的講講什么是請求,什么是響應。

首先,一個網(wǎng)頁請求的完整過程包括瀏覽器向服務器發(fā)送請求和服務器返回響應。具體過程如下圖所示(部分過程不屬于后端必須掌握的知識,小編不做深入):


由上圖可知,一個完整的請求響應過程,由用戶輸入URL開始(但這只是最簡單的情況,還有表單提交,ajax動作等等,這些都是請求),然后瀏覽器將用戶的操作轉(zhuǎn)化為請求并格式化成相應的請求報頭通過http協(xié)議(詳見http消息結(jié)構(gòu))發(fā)送給服務器。然后服務器將請求進行處理后生成一個響應。同樣地,通過http協(xié)議返回給瀏覽器,瀏覽器通過對響應的解析,然后做出相應的操作(如果返回了html,就講html渲染后展示在瀏覽器上,如果是ajax通過json收發(fā)數(shù)據(jù),則由ajax負責頁面渲染)。然后用戶就得到了他想要得到的頁面(不過或許服務器沒有用戶想要的頁面,就會返回404錯誤)。講完了一個完整的請求流程,接下來讓小編詳細介紹一下什么是請求,什么是響應。

什么是請求?

請求中最常見的當屬get和post兩種請求,在小編的get和post有什么區(qū)別?——get與post詳解一文中對這兩種請求有所介紹。通俗的理解,請求就像一封信,所有的請求信息都寫在信封上。而get方法與post方法的最主要區(qū)別是,get方法只有信封,需要什么東西只能寫在信封上;而post則是完整的信件,它可以將數(shù)據(jù)放在信封里面的信件。瀏覽器和網(wǎng)絡(路由器,上圖未標出,不是必須掌握的知識點)則扮演著郵遞員的職責——通過對請求頭的解析,將請求準確的送到對應的服務器上的應用。

什么是響應?

服務器接收到瀏覽器發(fā)送來的請求后得到了瀏覽器的請求數(shù)據(jù),并做出了數(shù)據(jù)處理然后生成對應的響應(可以理解為回信,關(guān)于接受請求并生成回應這個過程,就是后端開發(fā)者的工作了)。與請求一樣,響應也有一個響應頭,但響應頭的內(nèi)容與請求頭大不相同。

響應頭

此外,響應還會附帶響應內(nèi)容(通常是HTML文件),如下圖所示:

響應內(nèi)容

看到這一串的HTML代碼看官大大們是不是明白了什么?沒錯,我們收到了服務器給我們返回的響應,接下來只需要瀏覽器將HTML文件進行解析渲染,我們就能看到我們想要看到的頁面了。

小結(jié)

以上就是瀏覽器訪問一個網(wǎng)站的全部過程了。其實中間的網(wǎng)絡傳輸小編還省略了DNS解析等內(nèi)容,不過這些并不是后端開發(fā)初學者必須要掌握的。另外,請求與響應雖然是屬于計算機通信協(xié)議的內(nèi)容,但是不管是前端還是后端都應該掌握,甚至爬蟲工程師也要對此深入研究,所以這個知識點是相當重要的,希望各位讀者能夠掌握該知識點。

從前端到后端再到數(shù)據(jù)庫,全棧工程師必備技能,在W3C編程課上都能學啦,快來和小編一起學習編程吧!


0 人點贊