http請求過程

1、瀏覽器根據訪問的域名找到其IP地址。DNS查找過程如下:

1.瀏覽器緩存:瀏覽器會緩存DNS記錄一段時間。

2.系統緩存:如果在瀏覽器緩存里沒有找到需要的域名,瀏覽器會查系統緩存中的記錄。

3.路由器緩存:如果系統緩存也沒找到需要的域名,則會向路由器發送查詢請求。

4.ISP DNS緩存:如果依然沒找到需要的域名,則最后要查的就是ISP緩存DNS的服務器?;蛘呷ジ掌魃蠋湍悴樵?。

2、HTTP請求報文

請求行:是請求消息的第一行,由請求方式(GET/POST/DELETE/PUT)、請求資源路徑、協議版本號組成

請求頭:請求頭中的信息有和緩存相關的頭(Cache-Control,If-Modified-Since)、客戶端身份信息(User-Agent)等等

空行:最后一個請求頭部之后是一個空行,發送回車符和換行符,通知服務器以下不再有請求頭部。

請求數據:請求數據不在GET方法中使用,而在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。與請求數據相關的最常使用的請求頭部是Content-Type和Content-Length。

3、HTTP響應報文

狀態行:由http版本號、狀態碼、狀態說明組成

響應頭:響應頭是服務器傳遞給客戶端用于說明服務器的一些信息,以及將來繼續訪問該資源時的策略。

空行:空行表示消息頭的內容到此為止,接下來該解析消息

響應數據:就是服務器返回的數據信息

4、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服務器發送請求命令例如:

3.Web瀏覽器發送請求頭信息

瀏覽器發送其請求命令之后,還要以頭信息的形式向Web服務器發送一些別的信息,之后瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。

4.Web服務器應答

客戶機向服務器發出請求后,服務器會客戶機回送應答,HTTP/1.1 200 OK應答的第一部分是協議的版本號和應答狀態碼

5.Web服務器發送應答頭信息

正如客戶端會隨同請求發送關于自身的信息一樣,服務器也會隨同應答向用戶發送關于它自己的數據及被請求的文檔。

6.Web服務器向瀏覽器發送數據

Web服務器向瀏覽器發送頭信息后,它會發送一個空白行來表示頭信息的發送到此為結束,接著,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據

7.Web服務器關閉TCP連接

Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然后如果瀏覽器或者服務器在其頭信息加入了代碼Connection:keep-alive,TCP連接在發送后將仍然保持打開狀態,于是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88026

(0)
cuicui
上一篇 2017-10-23 10:35
下一篇 2017-10-23 12:52

相關推薦

  • N25 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; 3、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行; 4、添加用戶bash, testbash, basher, nol…

    Linux干貨 2017-01-08
  • 文件查找命令find詳解

    文件的查找命令 find 用法 功能:實時查找工具,通過遍歷指定路徑完成文件查找 工作特點: ?  查找速度略慢?  精確查找?  實時查找?  可能只搜索用戶具備讀取和執行權限的目錄 語法:   find [OPTION]… [查找路徑] [查找條件] [處理動作] 查找路徑:指定具體目標路徑;默認為當前目錄查找條件…

    Linux干貨 2016-11-07
  • shell腳本

    shell腳本 簡介:         使用腳本編程語言的好處是,它們多半運行在比編譯型語言還高的層級,能夠輕易處理文件與目錄之類的對象。缺點是:它們的效率通常不如編譯型語言。不過權衡之下,通常使用腳本編程還是值得的:花一個小時寫成的簡單腳本,同樣的功能用C或C++來編寫實現,可…

    Linux干貨 2016-08-15
  • 一次完整的HTTP事務是怎樣一個過程?

    聲明:本文章中的說法僅是個人理解總結,不一定完全正確,但是可以有助于理解。 關于HTTP協議可以參考以下: HTTP協議漫談 http://kb.cnblogs.com/page/140611/ HTTP協議概覽 http://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html 了解HTTP Heade…

    Linux干貨 2015-03-10
  • awk入門應用

    awk概述使用語法常用命令選項相關輸出命令print item1,item2,…printf FORMAT,item1,item2,….相關格式符相關修飾符相關內建變量相關內置函數相關操作符相關模式相關控制語句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干貨 2016-12-04
  • 第一周學習作業

    課后作業 1.描述計算機的組成及其功能。 計算機主要由硬件和軟件兩大部分組成。 硬件 CPU:又叫中央處理器,其主要功能是進行運算和邏輯運算。 主板:是電腦各個配件的連接平臺,電腦的CPU、內存和控制核心電路均安裝在主板上。 內存:又稱為動態存儲器,主要用于存儲電腦運行中的數據。 顯卡:用于向顯示器輸出信號的設備。 硬盤:是一種最為常見的外存儲器,具有超大容…

    Linux干貨 2016-11-30
欧美性久久久久