內容概述:
該篇主要內容概述
a.http相關術語解析
b.http的基本原理與工作流程
c.相關工具的使用(wireshark)
作用介紹
絕大多數的web開發,都是構建在http協議之上的。
http協議(hypertext transfer protocol,超文字傳輸協議)是用於從www伺服器傳輸超文字到本地
瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文
本文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。
http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。http是乙個基於請
求/響應模式的,無狀態的協議。
無狀態指的是:
1)協議對於事務處理沒有記憶能力【事物處理】【記憶能力】
2)對同乙個url請求沒有上下文關係【上下文關係】
3)每次的請求都是獨立的,它的執**況和結果與前面的請求和之後的請求是無直接關係的,它不會受前面的請求應答情況直接影響,
4)伺服器中沒有儲存客戶端的狀態,客戶端必須每次帶上自己的狀態去請求伺服器【狀態】
在tcp/ip協議棧中的位置
http協議通常承載於tcp協議之上,有時也承載於tls或ssl協議層之上,這個時候,就成了我們常
說的https。如下圖所示:
預設埠
預設http的埠號為80,https的埠號為443。
http的請求響應模型
http協議永遠都是客戶端發起請求,伺服器回送響應。見下圖:
這樣就限制了使用http協議,無法實現在客戶端沒有發起請求的時候,伺服器將訊息推送給客戶端。
http協議是乙個無狀態的協議,同乙個客戶端的這次請求和上次請求是沒有對應關係。
工作流程
一次http1.0操作稱為乙個事務,其工作過程可分為四步:
1)首先客戶機與伺服器需要建立連線。只要單擊某個超級鏈結,http工作開始。 (客戶機連線請求發起)
2)建立連線後,客戶機傳送乙個請求給伺服器,請求方式的格式為:統一資源識別符號(url)、協議版本
號,後邊是mime資訊包括請求修飾符、客戶機資訊和可能的內容。 (連線建立,請求資源)
3)伺服器接到請求後,給予相應的響應資訊,其格式為乙個狀態行,包括資訊的協議版本號、乙個成功或
錯誤的**,後邊是mime資訊包括伺服器資訊、實體資訊和可能的內容。 (伺服器響應請求)
4)客戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器斷開連線。 (一次請求完成,斷開連線)
如果在以上過程中的某一步出現錯誤,那麼產生錯誤的資訊將返回到客戶端,有顯示屏輸出。對於用
戶來說,這些過程是由http自己完成的,使用者只要用滑鼠點選,等待資訊顯示就可以了
mime
mime(multipurpose internet mail extensions)多用途網際網路郵件擴充套件型別。是設定某種副檔名的檔案用一種
應用程式來開啟的方式型別,當該副檔名檔案被訪問的時候,瀏覽器會自動使用指定應用程式來開啟。多用於指定
一些客戶端自定義的檔名,以及一些**檔案開啟方式。
它是乙個網際網路標準,擴充套件了電子郵件標準,使其能夠支援:
非ascii字元文字;非文字格式附件(二進位制、聲音、影象等);由多部分(multiple parts)組成的訊息體;
包含非ascii字元的頭資訊(header information)。
url
http url (url是一種特殊型別的uri,uniform resoure locator:統一資源定位器,包含了用於查詢某個資
源的足夠的資訊, uri(uniform resource identifiers, uri))的格式如下:
http表示要通過http協議來定位網路資源;host表示合法的internet主機網域名稱或者ip位址;port指定乙個埠號,為空則使用預設埠80;
abs_path指定請求資源的uri;如果url中沒有給出abs_path,那麼當它作為請求uri時,必須以「/」的形式給出,通常這個工作瀏覽器自動幫我們完成。
使用wireshark抓tcp、http包
首先說幾個最常用的關鍵字,「eq」 和 「==」等同,可以使用 「and」 表示並且,「or」表示或者。「!" 和 "not」 都表示
取反。1、針對wireshark最常用的自然是針對ip位址的過濾。其中有幾種情況:
1)對源位址為192.168.0.1的包的過濾,即抓取源位址滿足要求的包。
表示式為:ip.src == 192.168.0.1
3)對源或者目的位址為192.168.0.1的包的過濾,即抓取滿足源或者目的位址的ip位址是192.168.0.1的包。
表示式為:ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1
4)要排除以上的資料報,我們只需要將其用括號囊括,然後使用 "!" 即可。
表示式為:!(表示式)
2、針對協議的過濾
1)僅僅需要捕獲某種協議的資料報,表示式很簡單僅僅需要把協議的名字輸入即可。
表示式為:http
2)需要捕獲多種協議的資料報,也只需對協議進行邏輯組合即可。
表示式為:http or telnet (多種協議加上邏輯符號的組合即可)
3)排除某種協議的資料報
表示式為:not arp !tcp
3、針對埠的過濾(視協議而定)
1)捕獲某一埠的資料報
表示式為:tcp.port == 80
2)捕獲多埠的資料報,可以使用and來連線,下面是捕獲高階口的表示式
表示式為:udp.port >= 2048
4、針對長度和內容的過濾
(1)針對長度的過慮(這裡的長度指定的是資料段的長度)
表示式為:udp.length < 30 http.content_length <=20
(2)針對資料報內容的過濾
表示式為:http.request.uri matches "vipscu" (匹配http請求中含有vipscu欄位的請求資訊)
ubuntu/debian上安裝wireshark.
sudo apt‐get install wiresharknc命令來檢視瀏覽器發出的http包(在liunx下還可以使用)
nc ‐l ‐p 8888在linux下開啟乙個8888埠,然後在瀏覽器上輸入ip:8888就可以接受到http get請求。
多文字網頁
<將此**貼上到乙個txt文件中去,字尾名改為html,同級目錄,準備一張名為123.png的,用瀏覽器開啟此檔案即可。html
>
<
body
>
<
img
src="123.png"
>
<
p><
font
color
='red'
size
='40'
>helloworld
font
>
p>
body
>
html
>
HTTP協議 基礎篇
定義 1.http協議 超文字傳輸協議 它可以使瀏覽器更高效,網路傳輸減少。它不僅保證正確快速的傳輸文字,還能確定那一部分內容首先顯示 如文字先於圖形 2.http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型,http是乙個無狀態的協議。並且永遠都是客戶端發起請求,伺服器回送響應...
詳解HTTP協議(一) 概念篇
作為web程式設計師,http恐怕是與之關係最為緊密的應用層協議了。http全稱hypertext transfer protocol 超文字傳輸協議 基於b s架構,是web技術的核心。b s架構下,客戶端程式和伺服器程式執行在不同的端系統中,客戶端程式可以成功向伺服器程式請求到乙個web頁面,正...
HTTP協議學習 一 概念篇
1 不同版本概述 http 協議始於三十年前蒂姆 伯納斯 李的一篇 http 0.9 是個簡單的文字協議,只能獲取文字資源 http 1.0 確立了大部分現在使用的技術,但它不是正式標準 http 1.1 是目前網際網路上使用最廣泛的協議,功能也非常完善 文字傳輸,即使檔案等 上傳本身是二進位制,但...