基于GR47和MCU的無線嵌入式Web Server
2.1 HTTP協(xié)議
HTTP(超文本傳輸協(xié)議)是WWW上的協(xié)議。HTTP協(xié)議使Web服務(wù)器和瀏覽器可以通過Web交換數(shù)據(jù)。它是一種請求、響應(yīng)協(xié)議,即服務(wù)器等待并響應(yīng)客戶方請求。當用戶通過其瀏覽器訪問一個頁面時,瀏覽器發(fā)送一個HTTP請求給HTTP服務(wù)器,服務(wù)器會響應(yīng)這個請求,將指定的網(wǎng)頁傳送回去,用戶就可以瀏覽網(wǎng)頁。
HTTP協(xié)議不維護與客戶方的連接,它使用可靠的TCP連接,通常采用TCP80端口。HTTP非常簡單,請求和應(yīng)答是1行或多行文本,它的結(jié)束標志是一個換行符。如果請求成功,信息就沿該連接發(fā)送,直至傳送完成斷開連接。
客戶/服務(wù)器傳輸過程可分為4個基本步驟:瀏覽器與服務(wù)器建立連接;瀏覽器向服務(wù)器請求文檔;服務(wù)器響應(yīng)瀏覽器請求;斷開連接。
2.1.1 HTTP報文結(jié)構(gòu)
HTTP報文包括請求報文和響應(yīng)報文兩種報文類型,其中,請求報文由客戶端如瀏覽器向Web服務(wù)器發(fā)送,用于請求服務(wù)器提供某個類型的服務(wù);而響應(yīng)報文則是在服務(wù)器接到請求報文之后,返回給客戶端的消息,表明服務(wù)器所作出的響應(yīng)。
1)請求報文格式
請求報文一般包括請求行、首部和實體(有時包含)3部分。其中,請求行包括請求方法、URL(統(tǒng)一資源定位地址)和HTTP協(xié)議版本號3部分,其報文格式如圖3所示。在請求行中,請求方法是客戶端向服務(wù)器端發(fā)出的命令,URL是所請求網(wǎng)頁資源的地址,HTTP版本是指報文所使用的HTTP協(xié)議版本號。常用的請求方法有Get和Post兩種:Get方法通常只是用于請求服務(wù)器上的URL所指定的資源;Post方法用于客戶端向服務(wù)器端提供信息,所提供的信息位于請求報文的實體部分。
2)響應(yīng)報文的格式
響應(yīng)報文一般包括狀態(tài)行、首部和實體(有時包含)3部分,其報文格式如圖4所示。在響應(yīng)報文中,狀態(tài)行定義了響應(yīng)報文的狀態(tài),并由響應(yīng)狀態(tài)碼和響應(yīng)狀態(tài)碼說明字段反應(yīng)。其中,200系列的代碼用于指示成功的請求。
HTTP報文中的首部由多個首部行組成,用以在客戶端與服務(wù)器之間交換一些附加的信息。每個首部行由首部名、冒號、空格和首部值組成,并以回車換行符(\r\n)結(jié)尾。首部與實體之間有一空行進行間隔。
2.1.2 HTTP協(xié)議解析
HTTP協(xié)議解析過程分為接收和發(fā)送兩部分。HTTP協(xié)議解析流程圖如圖5所示。
MCU接收HTTP方法并設(shè)定方法標志位,計算URL,然后判斷HTTP方法。若HTTP方法為Get,則判斷是否存在對應(yīng)的網(wǎng)頁,如果存在,則確定接收HTTP方法并設(shè)定方法標志,然后返回;如果不存在對應(yīng)的網(wǎng)頁,直接返回。若HTTP方法為Post,則接收并處理控制數(shù)據(jù),然后返回。
2.2總體軟件
軟件采用C430編寫,其工作過程為:上電開始;MCU初始化;判斷GR47是否在線,若不在線繼續(xù)等待,若在線就發(fā)送模塊IP,GR47處于監(jiān)聽80端口狀態(tài);判斷HTTP是否接入,若未接人GR47,繼續(xù)處于監(jiān)聽80端口狀態(tài),若接入,MCU對HTTP協(xié)議解析;GR47發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢,HTTP連接斷開。軟件總體流程圖如圖6所示。
3結(jié)束語
隨著IPV6的實施,Internet上每個移動臺和PC將分配到一個唯一的IP,對通過GPRS、CDMA(碼分多址)或其他無線網(wǎng)絡(luò)技術(shù)登錄的嵌入式Web Server,Internet上任一移動臺或PC都能對其進行訪問。無線嵌入式Web Server具有廣闊的應(yīng)用和發(fā)展空間。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論