天天看點

【物聯網】(二) 從零開始如何使用http協定接入OneNet 之 簡單快速了解HTTP協定

在把雲端環境配置好以後就需要對互動方式有一定的了解,相信不是所有人都知道http協定究竟是個什麼,是以這一章主要說明

http協定

實際上很多人就卡在這一步

了解http結構

  • 什麼是http:
    大家都知道http是

    應用層

    的協定,但是為什麼說http是應用層的協定?,http和TCP到底有什麼關系? 我想會來看這篇文章的人大概也是雲裡霧裡的,是以首先解釋一下http是什麼

    HTTP(HyperText Transfer Protocol)

    大家都知道叫

    超文本傳輸協定

    是以

    超文本

    到底是個啥玩意兒?

    超文本

    就是

    超級文本

    ,本質就是被關聯的文字和資訊互相之間可以進行跳轉形成網絡結構的文本,通俗一點可以狹義的了解的被

    超連結(hyperlink)

    連接配接起來的資料,當然沒這麼簡單,但是你隻用知道

    這就是一個名字而已,随便起的名字

    就像

    奧特曼(Ultraman)

    一樣不用去深究.

    那麼

    HyperText Transfer Protocol(超文本傳輸協定)

    是個傳輸協定,首先是為了傳輸,其次這是傳輸協定.是以其實這後面的兩個單詞才是中因為是

    協定

    是以這就隻是個

    規則

    作為一個

    規則

    我們隻需要去了解規則中的規矩是什麼就行了,而實際上這個規則是建立與

    TCP/IP

    上的規則

    TCP

    是一個

    傳輸層的協定

    http

    是基于

    TCP

    協定而且是由應用進行規劃的是以被稱為

    應用層協定

    ,

    在實際傳輸中實際上是使用TCP協定傳輸文本

    而這個

    文本(ASCII編碼)

    就是http協定規定的内容稱之為:

    封包

    .

http的封包又分為兩種

一種是我們作為客戶去

勾搭

伺服器的

請求封包

,一種是伺服器接收到你的

勾搭

把相應的内容發送給你的

響應封包

  • http請求封包結構

    實際上http封包主要分為三個部分:

    A.

    請求行

    B.

    請求頭

    C.

    請求體

    是不是聽起來很高大上,感覺看不懂?實際上很簡單

    先看個圖:

    【物聯網】(二) 從零開始如何使用http協定接入OneNet 之 簡單快速了解HTTP協定
    這個圖再來一個http請求封包
    POST /search HTTP/1.1  
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, 
    application/msword, application/x-silverlight, application/x-shockwave-flash, */*  
    Referer: http://www.google.cn/  
    Accept-Language: zh-cn  
    Accept-Encoding: gzip, deflate  
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)  
    Host: www.google.cn 
    Connection: Keep-Alive  
    Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; 
    NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-
    FxlRugatx63JLv7CWMD6UB_O_r  
    
    hl=zh-CN&source=hp&q=csdn
    
               

    第一行:

    就是

    請求行

    用兩個空格分隔成了三部分

    第一個部分

    POST

    就是請求的方法還有其他的方法我這裡就不贅述了(自己百度哈).

    第二個部分

    /search

    就是請求路徑(

    URL

    ),在這個封包裡面我們請求的連結是

    http://www.google.cn/search

    那麼這個地方就是

    /search

    ,或者連結是

    http://api.heclouds.com/devices

    那麼這個地方就是

    /devices

    也就是

    域名

    後面的路徑

    第三個部分

    HTTP/1.1

    協定版本,沒有特殊要求都是

    HTTP/1.1

    第二行到第一個空行之前

    這就是

    請求頭

    不要被名字迷惑都是協定定制者自己取得你知道是個啥就行了

    在到下一個空行之前都是頭部

    頭部類似于鍵值對,或者說python中的字典,這種形狀,如

    Accept-Language: zh-cn

    ,

    Accept-Language

    就是

    鍵名

    zh-cn

    就是該

    鍵名

    對應的内容,是

    友善伺服器讀取的

    ,把你發送的資料進行相對應的處理一般就在頭部定義了

    第一個空行後

    就是我們的

    請求體

    也是比較高大上的名字實際上就是:

    你向伺服器發送的内容

    比如上面的

    hl=zh-CN&source=hp&q=csdn

    那麼很明顯我們是向伺服器發送了這個字元串

    撇開伺服器規則

    實際上可以使任何的内容

    可以是其他任何文字

    ,當然如果是向伺服器查詢資訊就要按規矩來.
    了解了這些以後就可以知道,我這段封包實際上是在Google搜尋csdn
  • http響應封包結構
    【物聯網】(二) 從零開始如何使用http協定接入OneNet 之 簡單快速了解HTTP協定
    執行個體:
    HTTP/1.1 200 OK
    Date: Mon, 23 May 2005 22:38:34 GMT
    Content-Type: text/html; charset=UTF-8
    Content-Encoding: UTF-8
    Content-Length: 138
    Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
    ETag: "3f80f-1b6-3e1cb03b"
    Accept-Ranges: bytes
    Connection: close
    
    <html>
    <head>
      <title>An Example Page</title>
    </head>
    <body>
      Hello World, this is a very simple HTML document.
    </body>
    </html>
    
               
    其他地方沒有什麼差別主要是

    第一行:

    第一個部分

    HTTP/1.1

    協定版本,一般都是

    HTTP/1.1

    .

    第二個部分

    200

    狀态碼,就是我們平時那個

    404

    就是這裡的

    第三個部分

    OK

    狀态碼描述簡單描述一下第二部分是什麼

以上便是在使用OneNet中需要的用到http的主要知識

繼續閱讀