在學習Fiddler以前,最好先學習一下HTTP協議。html
超文本傳輸協議(HTTP)是一種通訊協議,它容許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。
目前咱們使用的是HTTP/1.1 版本。web
同一個客戶端的此次請求和上次請求是沒有對應關係,對http服務器來講,它並不知道這兩個請求來自同一個客戶端,
也就是說客戶端發送一次請求,服務器端接收請求,通過處理返回給客戶端信息,而後客戶端和服務器端的鏈接就斷開了。
爲了維護他們之間的連接,讓服務器知道這是前一個用戶發送的請求,必須在一個地方保存客戶端的信息。
有兩種解決方案,一是在客戶端保存,二是在服務器端保存。保存在客戶端的是cookie,保存在服務器端的是session 。瀏覽器
cookie與session的區別:
①保存位置不同;
②cookie不是很安全,別人能夠分析存放在本地的cookie進行cookie欺騙;
③session會在必定時間內保存在服務器上,當訪問增多,會影響服務器的性能;
④單個cookie保存的數據不能超過4K,一個站點最多保存20個cookie。安全
cookie與session的共同點:
①他們兩個都是解決的http協議無狀態的問題;
②都保存的是用戶的歷史操做服務器
在瀏覽器的地址欄中輸入網址,既URL,而後就看到了網頁。 原理是怎樣的呢?
打開瀏覽器,在瀏覽器的地址欄輸入http://www.cnblogs.com/zhengyihan1216/p/6107933.html
1.建立鏈接。
當咱們輸入這樣一個請求時,首先要創建一個socket鏈接,由於socket是經過ip和端口創建的,因此以前還有一個DNS解析過程,把www.cnblogs.com變成ip,若是url裏不包含端口號,則會使用該協議的默認端口號。
2.請求。
鏈接成功建立後,開始向web服務器發送請求。HTTP請求中經常使用的方法有GET、POST、PUT、DELETE,對應着查、改、增、刪;
請求時發送一個HTTP請求報文。
3.響應。
web服務器收到這個請求,進行處理。從它的文檔空間中搜索子目錄/zhengyihan1216/p的文件6107933.html。根據找到文件的狀況,Web服務器把查找結果傳送給相應的Web瀏覽器;
響應時會返回一個HTTP響應報文。
4.關閉鏈接:當應答結束後,Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器可以與Web服務器創建鏈接。cookie
URL:Uniform Resource Locator, 統一資源定位符;
是用於完整地描述Internet上網頁和其餘資源的地址的一種標識方法。
Internet上的每個網頁都具備一個惟一的名稱標識,一般稱之爲URL地址,這種地址能夠是本地磁盤,也能夠是局域網上的某一臺計算機,更多的是Internet上的站點。
簡單地說,URL就是Web地址,俗稱「網址」。網絡
URL的通常格式爲(帶方括號[]的爲可選項):
protocol :// hostname[:port] / path / [;url-params][?query]#fragmentsession
格式說明:
一、protocol(協議):指定使用的傳輸協議,下面列出幾個經常使用的協議。
http 經過 HTTP 訪問資源,是目前WWW中應用最廣的協議,格式 http://
https 經過HTTPS 訪問資源。 格式 https://
file 資源是本地計算機上的文件。格式file://
ftp 經過 FTP訪問資源。格式 ftp://
gopher 經過 Gopher 協議訪問該資源。socket
二、hostname(主機名):「//」與第一個「/」之間的內容。指存放資源的服務器的域名系統 (DNS) 主機名或IP地址。「//」與第一個「/」之間的內容。性能
三、:port(端口號):是hostname後面的冒號後面的整數。
若使用的默認端口,可省略;若對端口進行重定義,即採用非默認端口號時,URL中就不能省略端口號。
各類傳輸協議都有默認的端口號,如http的默認端口爲80,HTTPS默認的端口號爲443。
四、path(路徑):由零或多個「/」符號隔開的字符串,通常用來表示主機上的一個目錄或文件地址。
路徑的後面爲空或「;」或「?」
五、url-params(url參數):這是用於指定特殊參數的可選項。「;」後面爲url參數
六、query(查詢):發送給http服務器的數據,爲可選項目。
用於給動態網頁傳遞參數,每一個參數的名和值用「=」符號隔開,如有多個參數,用「&」符號鏈接。
七、fragment:信息片段,字符串,用於指定網絡資源中的片段。例如一個網頁中有多個名詞解釋,可以使用fragment直接定位到某一名詞解釋。
例
http://www.cnblogs.com/zhengyihan1216/p/6011640.html;id=8079?name=zhengyihan&x=true#blogs
ptotocol(協議):http
hostname(主機):www.cnblogs.com
port(端口號):此處省略了,說明是默認的80
path(路徑):/zhengyihan1216/p/6011640.html
url-params(參數):id=8079
query:name=zhengyihan&x=true
fragment:blogs
HTTP請求報文結構,起始行、頭部、空行、body(header和body之間有個空行),以下圖:
(該圖片只是http報文的大體結構,下一篇中對請求報文和響應報文中的內容進行詳細學習)
若文中內容有誤,望你們指正,謝謝哦