在把雲端環境配置好以後就需要對互動方式有一定的了解,相信不是所有人都知道http協定究竟是個什麼,是以這一章主要說明 http協定
實際上很多人就卡在這一步
了解http結構
- 什麼是http:
大家都知道http是
的協定,但是為什麼說http是應用層的協定?,http和TCP到底有什麼關系? 我想會來看這篇文章的人大概也是雲裡霧裡的,是以首先解釋一下http是什麼應用層
大家都知道叫HTTP(HyperText Transfer Protocol)
是以超文本傳輸協定
到底是個啥玩意兒?超文本
就是超文本
,本質就是被關聯的文字和資訊互相之間可以進行跳轉形成網絡結構的文本,通俗一點可以狹義的了解的被超級文本
連接配接起來的資料,當然沒這麼簡單,但是你隻用知道超連結(hyperlink)
就像這就是一個名字而已,随便起的名字
奧特曼(Ultraman)
一樣不用去深究.
那麼
是個傳輸協定,首先是為了傳輸,其次這是傳輸協定.是以其實這後面的兩個單詞才是中因為是HyperText Transfer Protocol(超文本傳輸協定)
是以這就隻是個協定
作為一個規則
我們隻需要去了解規則中的規矩是什麼就行了,而實際上這個規則是建立與規則
上的規則TCP/IP
是一個TCP
而傳輸層的協定
是基于http
協定而且是由應用進行規劃的是以被稱為TCP
,應用層協定
而這個在實際傳輸中實際上是使用TCP協定傳輸文本
就是http協定規定的内容稱之為:文本(ASCII編碼)
.封包
一種是我們作為客戶去
http的封包又分為兩種
伺服器的
勾搭
,一種是伺服器接收到你的
請求封包
把相應的内容發送給你的
勾搭
響應封包
-
http請求封包結構
實際上http封包主要分為三個部分:
A.
B.請求行
C.請求頭
請求體
是不是聽起來很高大上,感覺看不懂?實際上很簡單
先看個圖:
這個圖再來一個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/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的主要知識