image

點擊了解:無線模塊 WizFi210

1、HTTP 和 HTTPS簡介

1.1 HTTP 簡介

       HTTP 即超文本傳輸協議(Hyper Text Transfer Protocol),客戶端(User Agent)通過 WEB 瀏覽器或網絡爬蟲等工具向服務器(網站)上指定端口(默認為80)以 URL(統一資源定位符,即網址)的形式發起一個 HTTP 請求(一般為GET、POST),服務器監聽到這一請求後會回復一個狀態行 + 響應消息的主體,從而形成了一個完整的 HTTP “請求—響應” 過程,而這一過程是建立在 TCP 連接之上的數據透明傳輸過程。

1.2 HTTPS 簡介

       HTTPS 全稱 Hyper Text Transfer Protocol over Secure Socket Layer,即經過 SSL(Secure Socket Layer)加密的 HTTP,簡單地說就是 HTTP 的安全升級版。HTTPS 的體系與 HTTP 大致相同,不同的是通過在 HTTP 和 TCP 層之間加入SSL層,達到數據加密和身份驗證的目的。使用 HTTPS 需要申請CA證書(一般需要付費),采用443端口,現廣泛用於 www上安全敏感的通訊。

2、WizFi210 實現 HTTP 請求的步驟

(1)設置WizFi210連接到一個可以登錄遠程HTTP服務器的AP並進入命令模式。

       此時WizFi210需要運行在Station模式下,即 AT+WM=0。可以有兩種方式連接AP後進入命令模式的方式,一種是 AT+WA=SSID 直接進入到命令模式;一種是自動連接進入數據透傳模式後鍵入 “+++” 進入命令模式。

(2)配置 WizFi210 的 HTTP 客戶端:AT+HTTPCONF=<Param>,<Value>。

image
image
image
image

根據客戶端及服務器的不同,需要的參數和參數值不同,用戶可以通過WareShark 等抓包工具獲取需要設置的參數值。

(3)WizFi210 作為 HTTP 客戶端建立一個 Socket 的 HTTP 連接,然後連接到主機名稱或IP地址所指定的服務器上(由於 HTTP 建立在 TCP 連接之上,因此可以用抓包工具 WareShark 等得到 TCP 連接建立的三次握手的數據包),令為:AT+HTTPOPEN=<host>,<Port Number>,<SSL Flag>。<host>為主機名稱或 IP 地址;<Port Number>為 HTTP 服務器的監聽端口,一般默認為 80,可以通過:開始→cmd→netstat –a –n→回車,查詢到HTTP服務器IP對應的端口號;<SSL Flag>為 HTTPS 標志位,這裡用到 HTTP,因此<SSL Flag>=0。例如:AT+HTTPOPEN= weibo.com,80,0。回復格式為:IP:xxx.xxx.xxx.xxx<cid>rn[OK]。IP 即為 HTTP 服務器的IP地址,<cid>為Socket號。

(4)在HTTP連接上獲取(GET)/上傳(POST)HTTP數據

命令格式:AT+HTTPSEND=<cid>,<Type>,<Timeout>,<Page>,<Size of content>

       緊接著,在Timeout時間之內輸入:<ESC>H<cid><Contents>,無需回車。

       其中,<cid>為前面獲得的 Socket 號;<Type>為HTTP請求的方式:1為GET、3為POST;

<Timeout>為輸入 HTTP 數據的等待時間;<Page>為 URL 中的頁,HTTP 的 URL 通常由 HTTP:<host主機地址>[:<端口>]/<路徑,頁>;<參數>?<查詢>組成;<Size of content>為傳輸數據的大小;<ESC>為轉義字符,可以為“←”或者以16進制“1B 48 30”輸入;<Contents>為實際傳輸的用戶數據,例如:AT+HTTPSEND=0,1,10,/;AT+HTTPSEND=0,3,20,/。正確的回復格式為:[OK]rn←H0xxxx200 OKrn{…}rn[DISCONNECT 0] rnrn[OK],HTTP連接隨之斷開。

3、WizFi210 HTTP 請求示例

下面以 GET 為例進行說明,POST 只是將 HTTPSEND 的類型改為 3,在此不做贅述。

AT+WD

[OK]

AT+WM=0

[OK]

AT+WWPA=12345678

[OK]

AT+NDHCP=1

[OK]

AT+WA=WIZnet

              IP                  SubNet            Gateway

 192.168.1.120:  255.255.255.0:  192.168.1.1

[OK]

AT+HTTPCONF=20, Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

[OK]

AT+HTTPCONF=5,150

[OK]

AT+HTTPCONF=7,application/x-www-form-urlencoded

[OK]

AT+HTTPCONF=11, weibo.com

[OK]

AT+HTTPOPEN= weibo.com,80,0

IP: 180.149.134.1410

[OK]

AT+HTTPSEND=0,1,10, /u/2097310012/home?wvr=5,150

[OK]

←H0xxxx200 OK

{…}

[DISCONNECT  0]

[OK]