服務(wù)器調(diào)試

HTTP(Hyper Text Transfer Protocol)即超文本傳輸協(xié)議勾怒,是目前互聯(lián)網(wǎng)行業(yè)使用最為廣泛的一種網(wǎng)絡(luò)協(xié)議刀诬,采用請求/響應(yīng)模型∽昝铮客戶端向服務(wù)器發(fā)送一個請求倔约,請求頭包含請求的方法秃殉、URI、協(xié)議版本、以及包含請求修飾符钾军、客戶信息和內(nèi)容的類似于MIME的消息結(jié)構(gòu)鳄袍。服務(wù)器以一個狀態(tài)行作為響應(yīng),相應(yīng)的內(nèi)容包括消息協(xié)議的版本吏恭,成功或者錯誤編碼加上包含服務(wù)器信息拗小、實體元信息以及可能的實體內(nèi)容。HTTP服務(wù)默認(rèn)端口是80砸泛,HTTPs默認(rèn)端口是443十籍。圖1為HTTP服務(wù)簡單的處理圖。


圖片描述

圖1 HTTP服務(wù)流程

本篇文章不會針對HTTP協(xié)議原理唇礁、底層進行大張旗鼓的分析勾栗,僅以HTTP開發(fā)者的角度進行講解,目的是為剛開始接觸HTTP服務(wù)開發(fā)或者接觸不久的同學(xué)提供幫助盏筐。在開發(fā)互聯(lián)網(wǎng)應(yīng)用的過程中對HTTP的跟蹤極為重要围俘,通過對HTTP通信的跟蹤我們可以知道client傳遞了哪些數(shù)據(jù),什么類型什么格式的數(shù)據(jù)琢融,以及與HTTP相關(guān)的一些參數(shù)界牡,響應(yīng)等等,通過這些數(shù)據(jù)來診斷通信的健康狀況漾抬,進行故障排除宿亡。HTTP在通信的過程中將傳輸?shù)臄?shù)據(jù)分為兩部分header和body,Header又包括general header纳令、request header挽荠、response header、entity header平绩。那么我們通過什么方式來跟蹤這些數(shù)據(jù)呢圈匆?很幸運,Chrome捏雌、firefox跃赚、IE等主流瀏覽器給開發(fā)者提供了這樣的工具。下面是作者結(jié)合自己的使用經(jīng)驗進行的總結(jié)性湿,將以Chrome為例進行講解纬傲,并且主要以network面板為主。 打開Chrome瀏覽器肤频,點擊F12鍵調(diào)出開發(fā)者工具嘹锁,如圖2、圖3(兩個旅行網(wǎng)站)
[圖片上傳中着裹。。。(2)]

圖2 火車票查詢(post請求)

圖片描述

圖3 機票查詢(get 請求)

點擊搜索按鈕骇扇,在network面板中展示當(dāng)前操作從請求到響應(yīng)整個過程的調(diào)用鏈摔竿,單擊面板左側(cè)任意一個請求連接,右側(cè)將顯示該請求client-server通信過程中的所有數(shù)據(jù)少孝。我們一一開看下继低。
Headers頁簽
General
Request URL :Client請求地址
Request Method:請求類型 get、post稍走、put袁翁、delete等
Status Code:響應(yīng)狀態(tài)碼 200、404婿脸、503等
Remote Address:域名對應(yīng)的真實ip:port

Request header
Accept:客戶端/發(fā)送端能夠接收的數(shù)據(jù)類型 text/html,application/xhtml+xml,application/xml粱胜; Accept-Encoding:瀏覽器可以支持的- web服務(wù)器返回內(nèi)容壓縮編碼類型 gzip, deflate
Accept-Language:瀏覽器可接收的語言 zh-CN,zh;q=0.8
Cache-Control:請求和響應(yīng)遵循的緩存機制,當(dāng)前請求的Cache-Control不會影響另一個請求的緩存處理狐树。private(默認(rèn))焙压、no-cache、must-revalidate抑钟、max-age涯曲。這個參數(shù)有幾種不同的使用場景: 打開一個新的窗口。private在塔、no-cache幻件、must-revalidate會重新請求服務(wù)器; max-age在超過時間年齡值時才會重新請求。
地址欄回車蛔溃。private绰沥、must-revalidate只有第一次時會請求服務(wù)器; no-cache每次都會請求;max-age在超過時間年齡值時才會重新請求城榛。
后退按鈕揪利。只有no-cache每次都重新請求服務(wù)器。
刷新狠持。全部重新請求服務(wù)器

Connection: 是否保持與服務(wù)器的tcp長連接疟位。keep-alive(默認(rèn))、close喘垂。Keep-alive代表服務(wù)會保留當(dāng)前連接一段時間被其他請求重復(fù)使用甜刻;close代表請求之后關(guān)閉連接。
Content-Length: 請求體的長度
Content-Type: 請求內(nèi)容的格式/類型 application/x-www-form-urlencoded application/json
Cookie: 客戶端緩存的Cookie正勒,在請求發(fā)送時會發(fā)送到服務(wù)端
Host: 請求的服務(wù)器域名
Referer: 當(dāng)前請求的來源
User-Agent: 發(fā)出請求的客戶端信息 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Form data(post)
這個版塊是在Request Method為post請求類型時顯示的post表單數(shù)據(jù)得院。
例如:
stationQuery.fromStation:北京 stationQuery.toStation:天津 stationQuery.date: 2016-04-23

Query String Parameter(get)
這個版塊是在Request Method為get請求類型時向服務(wù)端傳遞的請求參數(shù)。
例如:
type:inbound
depCityCode:BJS
depCity:北京
arrCityCode:SYX
arrCity:三亞
depDate:2016-04-30
arrDate:2016-05-03

Response header
Cache-Control:請求和響應(yīng)遵循的緩存機制
Connection:是否保持與服務(wù)器的tcp長連接章贞。keep-alive(默認(rèn))祥绞、close。Keep-alive代表服務(wù)會保留當(dāng)前連接一段時間被其他請求重復(fù)使用;close代表請求之后關(guān)閉連接蜕径。
Content-Type:響應(yīng)內(nèi)容的格式/類型text/html;charset=UTF-8標(biāo)識返回的內(nèi)容是文本類型两踏,html格式。
Content-Encoding:web服務(wù)器支持的返回內(nèi)容壓縮編碼類型 gzip
Content-Language:響應(yīng)體的語言
Content-Length:響應(yīng)體的長度
Date: 消息發(fā)出時間(GMT) Sat, 23 Apr 2016 07:47:54 GMT GMT+8=北京時間
Expires: 響應(yīng)過期時間 Transfer-Encoding:文件傳輸編碼chunked標(biāo)識傳輸內(nèi)容長度不確定兜喻,如果以gzip方式輸出時梦染,就不必申請一個很大的字節(jié)數(shù)組了,可以一塊一塊的輸出朴皆,更科學(xué)帕识,占用資源更少。
Vary: 提示使用緩存響應(yīng)還是從原始服務(wù)器請求遂铡,即當(dāng)緩存中存在一個未過期的響應(yīng)是否能被后續(xù)的請求服用肮疗,Accept-Encoding、User-Agent忧便。如果vary的值中返回了User-Agent族吻,那么通過不同的瀏覽器打開相同的頁面都會重新請求服務(wù)器;如果Vary中沒返回User-Agent珠增,那么客戶端緩存把它看成是相同的頁面超歌,相同的請求,直接給用戶返回緩存的內(nèi)容蒂教;如果返回的值是Accept-Encoding巍举,將請求頭信息中的Accept-encoding字段的值(gzip等)作為緩存的key;如果vary的值為*表示緩存不會去做判斷;

Preview頁簽
Preview頁簽展示請求響應(yīng)后的預(yù)覽凝垛。
Response頁簽
Response頁簽顯示響應(yīng)的具體內(nèi)容懊悯。
Cookie頁簽
Cookie頁簽以key-value形式展示客戶端所有的Cookie信息。
Timing頁簽
Timing頁簽展示的是從請求開始到響應(yīng)結(jié)束整個過程每個階段經(jīng)歷的時間或者說耗時梦皮。
到這里就基本介紹完了Chrome network面板的所有屬性(其他瀏覽器大同小異)炭分,掌握了這些知識點在開發(fā)調(diào)試HTTP應(yīng)用的過程中會非常的得心應(yīng)手。
好記性不如爛筆頭剑肯,下面是我記錄的一些常見HTTP服務(wù)錯誤代碼:
400 網(wǎng)頁不存在或請求參數(shù)語法有誤
401 賬戶無訪問權(quán)限
403 網(wǎng)站沒有綁定默認(rèn)首頁或者綁定默認(rèn)首頁錯誤
404 訪問的資源不存在捧毛,服務(wù)宕機
500 服務(wù)器內(nèi)部錯誤
502 網(wǎng)關(guān)錯誤,服務(wù)宕機
503 由于臨時過載或維護让网,服務(wù)器無法處理請求

HTTP應(yīng)用問題處理的步驟一般是檢查URL是否寫錯呀忧、網(wǎng)絡(luò)是否正常、DNS是否解析正確溃睹、應(yīng)用自身代碼問題而账。
接下來介紹兩款比較不錯HTTP服務(wù)測試工具,firefox的RESTClient和Chrome的Postman因篇。
先來看下firefox的RESTClient泞辐。RESTClient是由中國人開發(fā)的基于瀏覽器的測試工具笔横,是firefox的一個插件,操作簡單铛碑,用戶可以方便的根據(jù)需求創(chuàng)建和測試HTTP請求狠裹。
一、安裝
打開firefox瀏覽器汽烦,在附件組件中搜索RESTClient,在查詢列表中點擊安裝按鈕莉御,安裝完需要重啟瀏覽器撇吞。圖4 顯示的RESTClient快捷鍵位置。
[圖片上傳中礁叔。牍颈。。(4)]

圖4 RESTClient快捷鍵

二琅关、使用
點擊圖4 RESTClient快捷鍵煮岁,打開工具面板如圖5,


圖片描述

圖5 RESTClient面板

在面板中我們可以配置request headers涣易、request method画机、request url、body等等新症,最后點擊SEND按鈕發(fā)送請求步氏,響應(yīng)結(jié)果將顯示則Response頁簽,如圖6徒爹。


圖片描述

圖6 請求參數(shù)配置

在主面板我們還可以配置Content-type為application/x-www-form-urlencoded;charset=UTF-8荚醒,此時Body格式為msg={“name”:”張三”,”timestamp”:”2015-08-13”};我們還可以處理get請求隆嗅、配置請求權(quán)限界阁、通過Favorite Requests保持常用請求等等。
另外一個優(yōu)秀的HTTP服務(wù)測試工具是Chrome的Postman胖喳。Postman是一款功能強大的網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁HTTP請求的Chrome插件泡躯,是一個API針對性較強的桌面可視化測試工具。
一禀晓、安裝
打開Chrome瀏覽器精续,在工具欄的擴展工具中搜索Postman,在查詢列表中進行安裝操作粹懒。安裝完后需要在擴展程序中啟用Postman重付,設(shè)置后會在桌面顯示快捷方式(如圖7)
[圖片上傳中。凫乖。确垫。(7)]

圖7 Postman快捷方式

二弓颈、使用
雙擊快捷方式,進入Postman主界面删掀,如圖8
[圖片上傳中翔冀。。披泪。(8)]

圖8 Postman主界面

在Postman主界面纤子,左側(cè)是保存的測試用例列表,右側(cè)為請求參數(shù)配置款票、響應(yīng)結(jié)果面板控硼。請求參數(shù)配置如圖9。


圖片描述

圖9 請求參數(shù)配置

在請求參數(shù)配置頁簽艾少,我們還可以配置get請求卡乾、通過Authorization配置權(quán)限、配置任意Headers缚够、設(shè)置body格式(application/x-www-form-urlencoded幔妨、application/json等)、通過save按鈕將請求實例保存到左側(cè)測試用例列表谍椅。
RESTClient和Postman需要大家去發(fā)現(xiàn)他們更好误堡、更多的功能,將它們的優(yōu)勢發(fā)揮到最大毯辅,使用問題可以和我交流埂伦。
通過這篇文章,我們了解到了如何使用瀏覽器開發(fā)者工具跟蹤HTTP服務(wù)思恐,故障排除沾谜,以及介紹了兩款優(yōu)秀的HTTP測試工具,希望能給大家?guī)韼椭ㄋ腿嗣倒逭陀ǎ至粲嘞悖?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末基跑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子描焰,更是在濱河造成了極大的恐慌媳否,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荆秦,死亡現(xiàn)場離奇詭異篱竭,居然都是意外死亡,警方通過查閱死者的電腦和手機步绸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門掺逼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瓤介,你說我怎么就攤上這事吕喘∽改牵” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵氯质,是天一觀的道長募舟。 經(jīng)常有香客問我,道長闻察,這世上最難降的妖魔是什么拱礁? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮蜓陌,結(jié)果婚禮上觅彰,老公的妹妹穿的比我還像新娘。我一直安慰自己钮热,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布烛芬。 她就那樣靜靜地躺著隧期,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赘娄。 梳的紋絲不亂的頭發(fā)上仆潮,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音遣臼,去河邊找鬼性置。 笑死,一個胖子當(dāng)著我的面吹牛揍堰,可吹牛的內(nèi)容都是我干的鹏浅。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼屏歹,長吁一口氣:“原來是場噩夢啊……” “哼隐砸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝙眶,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤季希,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幽纷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體式塌,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年友浸,在試婚紗的時候發(fā)現(xiàn)自己被綠了峰尝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡尾菇,死狀恐怖境析,靈堂內(nèi)的尸體忽然破棺而出囚枪,到底是詐尸還是另有隱情,我是刑警寧澤劳淆,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布链沼,位于F島的核電站,受9級特大地震影響沛鸵,放射性物質(zhì)發(fā)生泄漏括勺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一曲掰、第九天 我趴在偏房一處隱蔽的房頂上張望疾捍。 院中可真熱鬧,春花似錦栏妖、人聲如沸乱豆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宛裕。三九已至,卻和暖如春论泛,著一層夾襖步出監(jiān)牢的瞬間揩尸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工屁奏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岩榆,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓坟瓢,卻偏偏與公主長得像勇边,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子载绿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,327評論 25 707
  • 如何在移動設(shè)備上測試靜態(tài)文件崭庸? 現(xiàn)在移動端優(yōu)先的情況下怀浆,前端工程師寫好靜態(tài)頁面后,通常是需要測試不同的設(shè)備上效果怕享,...
    FrankWang0909閱讀 1,195評論 2 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理执赡,服務(wù)發(fā)現(xiàn),斷路器函筋,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 我一個人在街上游蕩跌帐。沒有陽光首懈,風(fēng)有點大绊率。 迎面走來一個妖怪,一襲黑袍究履,烏發(fā)白睛滤否,頭頂還有尖角。 我與它打招呼最仑,“嘿...
    布藍(lán)的天閱讀 1,255評論 0 3
  • 我嫉妒陳白露藐俺,因為她的機智伶俐、勇敢無畏泥彤,總是令人著迷欲芹。同樣是女孩,我們的氣質(zhì)永遠(yuǎn)不敵她吟吝,那像是一種與生俱來的靈氣...
    邱太醬閱讀 419評論 0 0