當我們在瀏覽器的位址列輸入「www.baidu.com
」然後按回車,這之後發生了什麼事,我們直接看到的是開啟了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?
1、 1、
url自動解析
http url包含了用於查詢某個資源的足夠資訊,基本格式如下:http://host[「:
」port][abs_path],其中http表示桶蓋http協議來定位網路資源;host表示合法的主機網域名稱或ip位址,port指定乙個埠號,預設80;abs_path指定請求資源的uri;如果url中沒有給出abs_path,那麼當它作為請求uri時,必須以「/
」的形式給出,通常這個工作瀏覽器自動幫我們完成。
例如:輸入
www.163.com;
瀏覽器會自動轉換成:
2、獲取
ip,建立
tcp連線
瀏覽器位址列中輸入
""並提交之後,首先它會在
dns本地快取表中查詢,如果有則直接告訴
ip位址。如果沒有則要求閘道器
dns進行查詢,如此下去,找到對應的
ip後,則返回會給瀏覽器。
當獲取ip
之後,就開始與所請求的
tcp建立三次握手連線,連線建立後,就向伺服器發出
請求。3
、客戶端瀏覽器向伺服器發出
請求一旦建立了
tcp連線,
web瀏覽器就會向
web伺服器傳送請求命令,接著以頭資訊的形式向
web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。
例如:get/sample/hello.jsp http/1.14、
web伺服器應答,
並向瀏覽器傳送資料
客戶機向伺服器發出請求後,伺服器會客戶機回送應答,
應答的第一部分是協議的版本號和應答狀態碼,正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。
web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以
content-type
應答頭資訊所描述的格式傳送使用者所請求的實際資料5、
web伺服器關閉
tcp連線
一般情況下,一旦
web伺服器向瀏覽器傳送了請求資料,它就要關閉
tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**
connection:keep-alive
tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。
網上對http通訊的另一種說法:
(1)建立tcp連線
在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議族,因此internet又被稱作是tcp/ip網路。http是比tcp更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連線,因此,首先要建立tcp連線,一般tcp連線的埠號是80
(2)web瀏覽器向web伺服器傳送請求命令
一旦建立了tcp連線,web瀏覽器就會向web伺服器傳送請求命令
例如:get/sample/hello.jsp http/1.1
(3)web瀏覽器傳送請求頭資訊
瀏覽器傳送其請求命令之後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。
(4)web伺服器應答
客戶機向伺服器發出請求後,伺服器會客戶機回送應答,
應答的第一部分是協議的版本號和應答狀態碼
(5)web伺服器傳送應答頭資訊
正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。
(6)web伺服器向瀏覽器傳送資料
web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料
(7)web伺服器關閉tcp連線
一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**
connection:keep-alive
tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。
HTTP協議通訊過程
http協議通訊過程 當我們在瀏覽器的位址列輸入 www.baidu.com 然後按回車,這之後發生了什麼事,我們直接看到的是開啟了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?1 1 url自動解析 http url包含了用於查詢某個資源的足夠資訊,基本格式如下 http host port ...
HTTP協議通訊過程
當我們在瀏覽器的位址列輸入 www.baidu.com 然後按回車,這之後發生了什麼事,我們直接看到的是開啟了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?1 1 url自動解析 http url包含了用於查詢某個資源的足夠資訊,基本格式如下 http host port abs path 其中...
HTTP協議通訊過程
當我們在瀏覽器的位址列輸入 www.baidu.com 然後按回車,這之後發生了什麼事,我們直接看到的是開啟了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?1 1 url自動解析 http url包含了用於查詢某個資源的足夠資訊,基本格式如下 http host port abs path 其中...