前言
上一篇介紹了Composer的功能,可以模擬get和post請求,get請求有些是不帶參數的,這種比較容易,直接放到url地址欄就行。有些get請求會帶有參數,本篇詳細介紹url地址格式。
一、url詳解
1.url就是我們平常打開百度在地址欄輸入的:https:www.baidu.com,如下圖,這個是最簡單的url地址,打開的是百度的主頁
2.再看一個稍微復雜一點的url,在百度輸入框輸入:上海悠悠博客園
3.查看url地址欄,對比之前的百度首頁url地址,后面多了很多參數。當然最主要的參數是:wd=上海悠悠博客園(后面的一大串可以暫時忽略)。
4.那么問題來了,這些參數有什么作用呢?
可以做個簡單的對比,在地址欄分別輸入:
https:www.baidu.com
https://www.baidu.com/s?wd=上海悠悠博客園
對比打開的頁面有什么不一樣,現在知道作用了吧,也就是說這個多的"/s?wd=上海悠悠博客園"就是搜索的結果頁面
二、url解析
1.以"https://www.baidu.com/s?wd=上海悠悠博客園"這個url請求的抓包為例
2.那么一個完整的url地址,基本格式如下:
https://host:port/path?xxx=aaa&ooo=bbb
--http/https:這個是協議類型,如圖中1所示
--host:服務器的IP地址或者域名,如圖中2所示
--port:HTTP服務器的默認端口是80,這種情況下端口號可以省略。
如果使用了別的端口,必須指明,例如:192.168.3.111:8080,這里的8080就是端口
--path:訪問資源的路徑,如圖中3所示/s (圖中3是把path和請求參數放一起了)
--?:url里面的?這個符號是個分割線,用來區分問號前面的是path,問號后面的是參數
--url-params:問號后面的是請求參數,格式:xxx=aaa,如圖4區域就是請求參數
--&:多個參數用&符號連接
三、請求參數(params)
1.在url里面請求參數一般叫params,但是我們在fiddler抓包工具看到的參數是:QueryString
2.QueryString是像服務端提交的參數,其實跟params是一個意思,每個參數對應的都有name和value值
3.多個參數情況如下
四、UrlEncode編碼
1.如果url地址的參數帶有中文的,一般在url里面會是這樣的,如第二點里的wd=%E4%B8%8A%E6%B5%B7%E6%...
像看到%E4這種編碼的就是經過url編碼過的,需要解碼就能看到是什么中文了
2.用urlencode在線編碼/解碼工具,地址:http://tool.chinaz.com/tools/urlencode.aspx