官术网_书友最值得收藏!

1.5 查看、發(fā)送和接收HTTP消息的工具

雖然像Telnet這樣的工具對理解HTTP的基礎(chǔ)知識很有幫助,但是它們有一些局限性,其中最重要的是,無法處理網(wǎng)頁內(nèi)容比較多的情況。相較于Telnet,有幾個工具可以讓你更好地發(fā)送并查看HTTP請求。其中一些就在我們的Web瀏覽器里。

1.5.1 瀏覽器開發(fā)者工具

很多瀏覽器都帶有開發(fā)者工具,它可以讓你查看網(wǎng)站背后的細節(jié),包括HTTP請求和響應(yīng)。

要打開開發(fā)者工具,可以使用快捷鍵(對于大多數(shù)瀏覽器,在Windows下是F12鍵,在蘋果電腦上是Option+Command+I組合鍵);或者在頁面上右擊,在右鍵菜單中選擇Inspect命令。開發(fā)者工具中有很多標簽頁,用來展示網(wǎng)頁背后的技術(shù)細節(jié),但是我們最感興趣的是Network(網(wǎng)絡(luò))標簽頁。打開開發(fā)者工具,然后加載頁面。Network標簽頁會顯示出所有HTTP請求,單擊其中一個,可以查看更多細節(jié),包括請求和響應(yīng)首部。圖1.5所示是加載https://www.google.com時,Chrome開發(fā)者工具的內(nèi)容。

圖1.5 Chrome開發(fā)者工具中的Network標簽頁

像往常一樣,在地址欄(1)的頂部輸入URL。請注意掛鎖和https://,這表明Google正在使用HTTPS(但我們之前講過,Chrome可能會去掉這些標志)。像使用HTTP時一樣,網(wǎng)頁還是在地址欄下方顯示。如果你在打開開發(fā)者工具之后加載此頁面,則會看到包含各種標簽頁的新部分。單擊Network標簽頁(2),顯示HTTP請求(3),其中包括HTTP方法(GET)、響應(yīng)狀態(tài)碼(200)、協(xié)議(http/1.1)和scheme(https)等信息。可以通過右鍵單擊列標題來更改顯示的列。例如,在默認情況下不顯示Protocol(協(xié)議)、Scheme(請求格式)和Domain(域名)列。對于某些站點(例如Twitter),你會在此列中看到h2(代表HTTP/2),甚至更新的http/2+quic(來自Google,第9章討論)。

圖1.6顯示了單擊第一個請求時發(fā)生的情況(1)。右側(cè)顯示標簽頁的內(nèi)容,可以在這里查看響應(yīng)首部(2)和請求首部(3)。前面我們討論了其中的大多數(shù)首部。

圖1.6 在Chrome開發(fā)者工具中查看HTTP首部

HTTPS由瀏覽器處理,因此開發(fā)者工具只顯示加密之前的HTTP請求和解密之后的響應(yīng)。在大多數(shù)情況下,在設(shè)置完成后HTTPS可以被忽略,因為我們有合適的工具來處理加/解密。此外,大多數(shù)瀏覽器的開發(fā)者工具都能正確顯示媒體內(nèi)容,所以圖像會顯示正常,并且代碼(如HTML、CSS和JavaScript)通常可以被自動格式化以方便閱讀。

在本書中,我們會多次講到開發(fā)者工具。大家應(yīng)該熟練使用這些工具,可以選用你自己的網(wǎng)站或者流行的網(wǎng)站來練習。

1.5.2 發(fā)送HTTP請求

盡管Web瀏覽器的開發(fā)者工具是查看HTTP請求和響應(yīng)的絕佳方法,但它們卻不適用于發(fā)送HTTP請求。可以使用地址欄發(fā)送簡單的GET請求,也可以使用網(wǎng)站提供的功能發(fā)送請求(例如,通過HTML表單進行POST操作)。除了這些以外,我們不能通過開發(fā)者工具來手動發(fā)起其他的HTTP請求。

Advanced REST Client[36]為我們提供了一種發(fā)送和查看HTTP請求和響應(yīng)的方法。輸入網(wǎng)址https://www.google.com(2),選擇GET方法(1),然后點擊Send按鈕(3)以獲取響應(yīng)(4),如圖1.7所示。注意,該程序支持HTTPS。

圖1.7 Advanced REST Client(高級REST客戶端)

使用此應(yīng)用程序與使用瀏覽器沒什么不同,但你還可以使用Advanced REST Client發(fā)送其他類型的HTTP請求(例如POSTPUT),需要設(shè)置要發(fā)送的首部或正文數(shù)據(jù)。起初Advanced REST Client是Chrome瀏覽器的擴展[37],后來被封裝為單獨的應(yīng)用程序。還有一些和Advanced REST Client類似的瀏覽器擴展工具,包括Postman(Chrome)、Rested[38]、RESTClient[39](Firefox)和RESTMan[40](Opera),它們的功能類似。

1.5.3 其他工具

我們可以使用許多其他的工具在瀏覽器外發(fā)送并查看HTTP請求,其中一些是命令行程序(例如curl[41]、wget[42]和httpie[43]),還有一些是桌面客戶端(例如,SOAP-UI[44])。

如果你希望查看更底層的數(shù)據(jù)包,則可以考慮Chrome的net-internals頁面,或者網(wǎng)絡(luò)嗅探器程序,如Fiddler[45]和Wireshark[46]。在后面的章節(jié)中,討論HTTP/2的細節(jié)時,會用到這些工具。

主站蜘蛛池模板: 灌阳县| 鹤壁市| 辰溪县| 赤城县| 报价| 杭锦旗| 苏州市| 金沙县| 保德县| 类乌齐县| 分宜县| 江达县| 苏尼特左旗| 健康| 五华县| 永兴县| 台江县| 太白县| 左云县| 固阳县| 溧水县| 乌拉特中旗| 杨浦区| 楚雄市| 北海市| 白山市| 富民县| 朝阳区| 济阳县| 额尔古纳市| 瑞昌市| 航空| 西藏| 柘荣县| 临夏市| 红河县| 武平县| 阜康市| 平原县| 施甸县| 阳新县|