自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自己動手,搭建HTTP實驗環(huán)境

網(wǎng)絡(luò) 通信技術(shù)
這一講是“破冰篇”的最后一講,我會先簡單地回顧一下之前的內(nèi)容,然后在 Windows 系統(tǒng)上實際操作,用幾個應(yīng)用軟件搭建出一個“最小化”的 HTTP 實驗環(huán)境,方便后續(xù)的“基礎(chǔ)篇”“進(jìn)階篇”“安全篇”的學(xué)習(xí)。
[[326829]]

這一講是“破冰篇”的最后一講,我會先簡單地回顧一下之前的內(nèi)容,然后在 Windows 系統(tǒng)上實際操作,用幾個應(yīng)用軟件搭建出一個“最小化”的 HTTP 實驗環(huán)境,方便后續(xù)的“基礎(chǔ)篇”“進(jìn)階篇”“安全篇”的學(xué)習(xí)。

“破冰篇”回顧

HTTP 協(xié)議誕生于 30 年前,設(shè)計之初的目的是用來傳輸純文本數(shù)據(jù)。但由于形式靈活,搭配 URI、HTML 等技術(shù)能夠把互聯(lián)網(wǎng)上的資源都聯(lián)系起來,構(gòu)成一個復(fù)雜的超文本系統(tǒng),讓人們自由地獲取信息,所以得到了迅猛發(fā)展。

HTTP 有多個版本,目前應(yīng)用的最廣泛的是 HTTP/1.1,它幾乎可以說是整個互聯(lián)網(wǎng)的基石。但 HTTP/1.1 的性能難以滿足如今的高流量網(wǎng)站,于是又出現(xiàn)了 HTTP/2 和 HTTP/3。不過這兩個新版本的協(xié)議還沒有完全推廣開。在可預(yù)見的將來,HTTP/1.1 還會繼續(xù)存在下去。

HTTP 翻譯成中文是“超文本傳輸協(xié)議”,是一個應(yīng)用層的協(xié)議,通?;?TCP/IP,能夠在網(wǎng)絡(luò)的任意兩點之間傳輸文字、圖片、音頻、視頻等數(shù)據(jù)。

HTTP 協(xié)議中的兩個端點稱為請求方和應(yīng)答方。請求方通常就是 Web 瀏覽器,也叫 user agent,應(yīng)答方是 Web 服務(wù)器,存儲著網(wǎng)絡(luò)上的大部分靜態(tài)或動態(tài)的資源。

在瀏覽器和服務(wù)器之間還有一些“中間人”的角色,如 CDN、網(wǎng)關(guān)、代理等,它們也同樣遵守 HTTP 協(xié)議,可以幫助用戶更快速、更安全地獲取資源。

HTTP 協(xié)議不是一個孤立的協(xié)議,需要下層很多其他協(xié)議的配合。最基本的是 TCP/IP,實現(xiàn)尋址、路由和可靠的數(shù)據(jù)傳輸,還有 DNS 協(xié)議實現(xiàn)對互聯(lián)網(wǎng)上主機的定位查找。

對 HTTP 更準(zhǔn)確的稱呼是“HTTP over TCP/IP”,而另一個“HTTP over SSL/TLS”就是增加了安全功能的 HTTPS。

軟件介紹

常言道“實踐出真知”,又有俗語“光說不練是假把式”。要研究 HTTP 協(xié)議,最好有一個實際可操作、可驗證的環(huán)境,通過實際的數(shù)據(jù)、現(xiàn)象來學(xué)習(xí),肯定要比單純的“動嘴皮子”效果要好的多。

現(xiàn)成的環(huán)境當(dāng)然有,只要能用瀏覽器上網(wǎng),就會有 HTTP 協(xié)議,就可以進(jìn)行實驗。但現(xiàn)實的網(wǎng)絡(luò)環(huán)境又太復(fù)雜了,有很多無關(guān)的干擾因素,這些“噪音”會“淹沒”真正有用的信息。

所以,我給你的建議是:搭建一個“最小化”的環(huán)境,在這個環(huán)境里僅有 HTTP 協(xié)議的兩個端點:請求方和應(yīng)答方,去除一切多余的環(huán)節(jié),從而可以抓住重點,快速掌握 HTTP 的本質(zhì)。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

簡單說一下這個“最小化”環(huán)境用到的應(yīng)用軟件:

  • Wireshark
  • Chrome/Firefox
  • Telnet
  • OpenResty

Wireshark是著名的網(wǎng)絡(luò)抓包工具,能夠截獲在 TCP/IP 協(xié)議棧中傳輸?shù)乃辛髁?,并按協(xié)議類型、地址、端口等任意過濾,功能非常強大,是學(xué)習(xí)網(wǎng)絡(luò)協(xié)議的必備工具。

它就像是網(wǎng)絡(luò)世界里的一臺“高速攝像機”,把只在一瞬間發(fā)生的網(wǎng)絡(luò)傳輸過程如實地“拍攝”下來,事后再“慢速回放”,讓我們能夠靜下心來仔細(xì)地分析那一瞬到底發(fā)生了什么。

Chrome是 Google 開發(fā)的瀏覽器,是目前的主流瀏覽器之一。它不僅上網(wǎng)方便,也是一個很好的調(diào)試器,對 HTTP/1.1、HTTPS、HTTP/2、QUIC 等的協(xié)議都支持得非常好,用 F12 打開“開發(fā)者工具”還可以非常詳細(xì)地觀測 HTTP 傳輸全過程的各種數(shù)據(jù)。

如果你更習(xí)慣使用Firefox,那也沒問題,其實它和 Chrome 功能上都差不太多,選擇自己喜歡的就好。

與 Wireshark 不同,Chrome 和 Firefox 屬于“事后諸葛亮”,不能觀測 HTTP 傳輸?shù)倪^程,只能看到結(jié)果。

Telnet是一個經(jīng)典的虛擬終端,基于 TCP 協(xié)議遠(yuǎn)程登錄主機,我們可以使用它來模擬瀏覽器的行為,連接服務(wù)器后手動發(fā)送 HTTP 請求,把瀏覽器的干擾也徹底排除,能夠從最原始的層面去研究 HTTP 協(xié)議。

OpenResty你可能比較陌生,它是基于 Nginx 的一個“強化包”,里面除了 Nginx 還有一大堆有用的功能模塊,不僅支持 HTTP/HTTPS,還特別集成了腳本語言 Lua 簡化 Nginx 二次開發(fā),方便快速地搭建動態(tài)網(wǎng)關(guān),更能夠當(dāng)成應(yīng)用容器來編寫業(yè)務(wù)邏輯。

選擇 OpenResty 而不直接用 Nginx 的原因是它相當(dāng)于 Nginx 的“超集”,功能更豐富,安裝部署更方便。我也會用 Lua 編寫一些服務(wù)端腳本,實現(xiàn)簡單的 Web 服務(wù)器響應(yīng)邏輯,方便實驗。

安裝過程

這個“最小化”環(huán)境的安裝過程也比較簡單,大約只需要你半個小時不到的時間就能搭建完成。

我在 GitHub 上為本專欄開了一個項目:http_study,可以直接用“git clone”下載,或者去 Release 頁面,下載打好的壓縮包。

我使用的操作環(huán)境是 Windows 10,如果你用的是 Mac 或者 Linux,可以用 VirtualBox 等虛擬機軟件安裝一個 Windows 虛擬機,再在里面操作。

首先你要獲取最新的 http_study 項目源碼,假設(shè) clone 或解壓的目錄是“D:\http_study”,操作完成后大概是下圖這個樣子。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

Chrome 和 WireShark 的安裝比較簡單,一路按“下一步”就可以了。版本方面使用最新的就好,我的版本可能不是最新的,Chrome 是 73,WireShark 是 3.0.0。

Windows 10 自帶 Telnet,不需要安裝,但默認(rèn)是不啟用的,需要你稍微設(shè)置一下。

打開 Windows 的設(shè)置窗口,搜索“Telnet”,就會找到“啟用或關(guān)閉 Windows 功能”,在這個窗口里找到“Telnet 客戶端”,打上對鉤就可以了,可以參考截圖。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

接下來我們要安裝 OpenResty,去它的官網(wǎng),點擊左邊欄的“Download”,進(jìn)入下載頁面,下載適合你系統(tǒng)的版本(這里我下載的是 64 位的 1.15.8.1,包的名字是“openresty-1.15.8.1-win64.zip”)。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

然后要注意,你必須把 OpenResty 的壓縮包解壓到剛才的“D:\http_study”目錄里,并改名為“openresty”。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

安裝工作馬上就要完成了,為了能夠讓瀏覽器能夠使用 DNS 域名訪問我們的實驗環(huán)境,還要改一下本機的 hosts 文件,位置在“C:\WINDOWS\system32\drivers\etc”,在里面添加三行本機 IP 地址到測試域名的映射,你也可以參考 GitHub 項目里的 hosts 文件,這就相當(dāng)于在一臺物理實機上“托管”了三個虛擬主機。

  1. 127.0.0.1       www.chrono.com127.0.0.1       www.metroid.net127.0.0.1       origin.io復(fù)制代碼 

注意修改 hosts 文件需要管理員權(quán)限,直接用記事本編輯是不行的,可以切換管理員身份,或者改用其他高級編輯器,比如 Notepad++,而且改之前最好做個備份。

到這里,我們的安裝工作就完成了!之后你就可以用 Wireshark、Chrome、Telnet 在這個環(huán)境里隨意“折騰”,弄壞了也不要緊,只要把目錄刪除,再來一遍操作就能復(fù)原。

測試驗證

實驗環(huán)境搭建完了,但還需要把它運行起來,做一個簡單的測試驗證,看是否運轉(zhuǎn)正常。

首先我們要啟動 Web 服務(wù)器,也就是 OpenResty。

在 http_study 的“www”目錄下有四個批處理文件,分別是:

 

07 | 自己動手,搭建HTTP實驗環(huán)境
  • start:啟動 OpenResty 服務(wù)器;
  • stop:停止 OpenResty 服務(wù)器;
  • reload:重啟 OpenResty 服務(wù)器;
  • list:列出已經(jīng)啟動的 OpenResty 服務(wù)器進(jìn)程。

使用鼠標(biāo)雙擊“start”批處理文件,就會啟動 OpenResty 服務(wù)器在后臺運行,這個過程可能會有 Windows 防火墻的警告,選擇“允許”即可。

運行后,鼠標(biāo)雙擊“list”可以查看 OpenResty 是否已經(jīng)正常啟動,應(yīng)該會有兩個 nginx.exe 的后臺進(jìn)程,大概是下圖的樣子。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

有了 Web 服務(wù)器后,接下來我們要運行 Wireshark,開始抓包。

因為我們的實驗環(huán)境運行在本機的 127.0.0.1 上,也就是 loopback“環(huán)回”地址。所以,在 Wireshark 里要選擇“Npcap loopback Adapter”,過濾器選擇“HTTP TCP port(80)”,即只抓取 HTTP 相關(guān)的數(shù)據(jù)包。鼠標(biāo)雙擊開始界面里的“Npcap loopback Adapter”即可開始抓取本機上的網(wǎng)絡(luò)數(shù)據(jù)。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

然后我們打開 Chrome,在地址欄輸入“http://localhost/”,訪問剛才啟動的 OpenResty 服務(wù)器,就會看到一個簡單的歡迎界面,如下圖所示。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

這時再回頭去看 Wireshark,應(yīng)該會顯示已經(jīng)抓到了一些數(shù)據(jù),就可以用鼠標(biāo)點擊工具欄里的“停止捕獲”按鈕告訴 Wireshark“到此為止”,不再繼續(xù)抓包。

 

07 | 自己動手,搭建HTTP實驗環(huán)境

至于這些數(shù)據(jù)是什么,表示什么含義,我會在下一講再詳細(xì)介紹。

如果你能夠在自己的電腦上走到這一步,就說明“最小化”的實驗環(huán)境已經(jīng)搭建成功了,不要忘了實驗結(jié)束后運行批處理“stop”停止 OpenResty 服務(wù)器。

小結(jié)

這次我們學(xué)習(xí)了如何在自己的電腦上搭建 HTTP 實驗環(huán)境,在這里簡單小結(jié)一下今天的內(nèi)容。

  1. 現(xiàn)實的網(wǎng)絡(luò)環(huán)境太復(fù)雜,有很多干擾因素,搭建“最小化”的環(huán)境可以快速抓住重點,掌握 HTTP 的本質(zhì);
  2. 我們選擇 Wireshark 作為抓包工具,捕獲在 TCP/IP 協(xié)議棧中傳輸?shù)乃辛髁?
  3. 我們選擇 Chrome 或 Firefox 瀏覽器作為 HTTP 協(xié)議中的 user agent;
  4. 我們選擇 OpenResty 作為 Web 服務(wù)器,它是一個 Nginx 的“強化包”,功能非常豐富;
  5. Telnet 是一個命令行工具,可用來登錄主機模擬瀏覽器操作;
  6. 在 GitHub 上可以下載到本專欄的專用項目源碼,只要把 OpenResty 解壓到里面即可完成實驗環(huán)境的搭建。

課下作業(yè)

  1. 按照今天所學(xué)的,在你自己的電腦上搭建出這個 HTTP 實驗環(huán)境并測試驗證。
  2. 由于篇幅所限,我無法詳細(xì)介紹 Wireshark,你有時間可以再上網(wǎng)搜索 Wireshark 相關(guān)的資料,了解更多的用法。

 

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2020-06-24 11:32:28

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊

2010-09-01 10:27:43

vSphere服務(wù)器虛擬化VMware

2015-10-08 14:03:01

TCP網(wǎng)絡(luò)協(xié)議

2010-08-31 11:30:26

vSphere服務(wù)器虛擬化VMware

2021-07-16 09:51:21

kubernetes環(huán)境容器

2012-02-16 10:00:59

2011-03-15 15:51:12

netfilteriptables

2010-09-01 08:57:18

DHCP實驗

2011-08-25 09:30:22

2020-09-29 12:13:46

SQL引擎底層

2015-09-01 09:49:28

2014-11-27 10:52:17

vlan路由

2014-06-20 09:18:54

Dustjs中間件

2009-03-16 16:30:18

2017-02-23 15:13:08

2009-12-21 09:05:22

2009-10-27 09:01:54

VB.NET內(nèi)存指針

2011-05-06 15:35:58

打印機打印故障

2011-08-12 10:46:57

Linux

2009-12-03 13:56:05

Suse Linux開xinetd
點贊
收藏

51CTO技術(shù)棧公眾號