一次完整的http請求過程分析

瀏覽器輸入一個URL回車后,會發(fā)生什么呢?
一、http請求的完整過程簡述
1、域名解析:使用DNS協議進行域名解析
2、建立連接:發(fā)起TCP三次握手
3、發(fā)起http請求:建立TCP連接成功后,瀏覽器發(fā)起http請求
4、響應http請求:服務端響應http請求,瀏覽器得到返回response
5、解析response:瀏覽器解析response,并請求其它的資源(如js、css等)
6、瀏覽器渲染展示頁面:瀏覽器根據內核對頁面進行渲染展示
7、斷開連接:TCP四次揮手
二、http請求過程舉例詳述
比如訪問:www.dbjr.com.cn,具體流程:
1、通過DNS域名解析到IP
解析順序:
1.1 瀏覽器搜索自己的DNS緩存
1.2 如果瀏覽器自身緩存里找不到,就會去搜索操作系統(tǒng)自身的DNS緩存
1.3 以上兩個都無,則嘗試從操作系統(tǒng)的hosts文件里面找位置一般在C:\Windows\System32\drivers\etc\hosts)
1.4 上面三個過程都沒有獲取到的話,就遞歸的去域名服務器去查找
2、通過IP使用ARP地址解析協議,找到對應的服務器
3、找到服務器后,發(fā)起TCP三次握手建立連接
在 HTTP 工作開始之前,瀏覽器 首先要通過網絡與 服務器建立連接,該連接是通過TCP來完成的,該協議與 IP 協議共同構建 Internet,即著名的 TCP/IP 協議,因此 Internet 又被稱作是TCP/IP網絡。HTTP 是比 TCP 更高層次的應用層協議,根據規(guī)則,只有低層協議建立之后才能進行更高層協議的連接,因此,首先要建立 TCP 連接,一般TCP連接的端口號是80。建立TCP連接需要找到連接主機,所以需要先解析域名得到 IP 再找到主機進行3 次握手建立TCP連接(兩臺電腦之間建立一個通信橋梁)
4、建立TCP請求后,發(fā)起HTTP請求
一旦建立了 TCP 連接, 瀏覽器就會向 服務器發(fā)送請求命令
5、服務器響應HTTP請求,返回RESPONSE
瀏覽器向服務器發(fā)出請求后,服務器會對其進行應答,應答內容包括:協議的版本號和應答狀態(tài)碼 :HTTP/1.1 200 OK,響應頭信息來記錄服務器自己的數據,被請求的文檔內容。最后發(fā)送一個空白行來表示頭信息的發(fā)送到此為結束,接著以Content-Type響應頭信息所描述的格式發(fā)送用戶所請求的實際數據
6、瀏覽器解析response,并請求其它的資源文件(js、css等)
瀏覽器接收服務器應答回來的 html 代碼和css,和js代碼再進行頁面的渲染或者接收到應答的文件進行保存等操作
7、瀏覽器進行渲染界面
根據解析內容渲染呈現給用戶
8、四次揮手,斷開tcp連接
斷開不一定是在最后一步,根據是否是長連接,來決定什么時候斷開
一般情況下,服務器向瀏覽器發(fā)送了響應數據,就可關閉 TCP 連接,但如果瀏覽器或者服務器在其頭信息加入了這行代碼:Connection:keep-alive,即代表長連接,可以先不斷開連接。
TCP連接在發(fā)送后將仍然保持打開狀態(tài),瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。保持連接節(jié)省了為每個請求建立新連接所需的時間,還節(jié)約了網絡帶寬
三、總結&擴展
完整的http請求包含:
瀏覽器發(fā)起請求-> 解析域名得到ip進行TCP連接 ->瀏覽器發(fā)送HTTP請求和頭信息發(fā)送->服務器對瀏覽器進行應答,響應頭信息和瀏覽器所需的內容-> 關閉TCP連接或保持-> 瀏覽器得到數據數據進行渲染
到此這篇關于一次完整的http請求過程分析的文章就介紹到這了,更多相關http請求過程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!
相關文章
三大網絡管理協議:SNMP、NETCONF、RESTCONF介紹
本文將詳細介紹三種主要的協議:SNMP(Simple Network Management Protocol)、NETCONF(Network Configuration Protocol)和RESTCONF,需要的朋友可以參考下2024-02-13- 常見的網絡協議有:TCP/IP協議、UDP協議、HTTP協議、FTP協議等,本文就詳細的介紹一下常見的網絡協議,通過這些具體的協議更深刻的認識整體網絡的傳輸流程及相關網絡原理,2023-05-30
- 本文主要介紹了L2TP和PPTP的區(qū)別,主要的前區(qū)別在于用途不同、使用要求不同,下面就來介紹一下L2TP和PPTP的聯系與區(qū)別,感興趣的可以了解一下2023-05-30
- 這篇文章主要介紹了自組織網絡Ad Hoc之OLSR 協議詳解,需要的朋友可以參考下2023-05-08
- 這篇文章主要介紹了自組織網絡Ad Hoc之AODV協議詳解,需要的朋友可以參考下2023-05-08
- 自組織網絡(Ad Hoc)是一種移動通信和計算機網絡相結合的網絡,是移動計算機網絡的一種,用戶終端可以在網絡內隨意移動而保持通信2023-05-08
- 瀏覽器輸入一個URL回車后,會發(fā)生什么呢?這里就為大家分享一下,需要的朋友可以參考下2022-10-19
- 本篇主要是對網絡協議進行一個歸納總結,方便后續(xù)查閱及復習,當然如有新的認知或新的理解,也會持續(xù)更新2022-10-19
- 今日回顧網絡知識時,發(fā)現自己專門整理過一篇關于日常生活中常見的網絡協議知識以及作用的梳理,特發(fā)此一貼,也當給自己鞏固網絡知識了,如有錯誤,望各大佬指正2022-10-19
- HTTP即超文本傳輸協議,是一種實現客戶端和服務器之間通信的響應協議,它是用作客戶端和服務器之間的請求,需要的朋友可以參考下2022-10-19