《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種實用的嵌入式Web服務器設計
一種實用的嵌入式Web服務器設計
單片機與嵌入式系統
李英明,閆志輝,周水斌
摘要: 數字化變電站越來越多地采用以太網技術,針對各種保護和控制IED(InteglratedDriveElectronlcs)的參數配置以及狀態監測問題,本文通過對Linux平臺上的BOA服務器和CGIC的源碼進行研究和修改,設計了一種實用的嵌入式Web服務器。它可方便地在支持TCP/IP協議的非Linux的嵌入式系統上運行,在不影響IED原有功能的前提下對用戶提供Web服務,同時提出了一種適合嵌入式系統使用的訪問權限認證和對Web頁面的管理及動態生成機制,并支持We
Abstract:
Key words :

引言
數字化變電站是建立在網絡通信技術和電子技術基礎上的一種新型變電站自動化系統,其中一個重要特征就是二次設備的網絡化。目前在國內的數字化變電站試點中,已經出現了大批支持以太網和TCP/IP協議的嵌入式IED,在具體開發和應用中發現,由于現場環境的復雜多變以及客戶需求的多樣性,經常需要對這些IED進行參數的配置和修改。但廠家多采用專門的配置軟件來進行,操作界面不夠統一,給現場操作帶來諸多不便。而采用Web服務器技術,則只需要瀏覽器便可實現對IED參數的在線修改與配置,從而極大地方便了對設備的維護和管理。目前,Web服務器功能在數字化變電站中,多用于調度與監控端設計,單純在IED上實現Web服務器功能的報道尚不多見。本文通過對Linux平臺上運行的BoA Web服務器和CGIC的研究,將原本兩個獨立運行的程序整合為多任務系統中的一個任務實體,并對其進行相應的精簡和修改;設計并實現了一種可在一般嵌入式系統上運行的,既相對簡單又響應快速的嵌入式Web服務器。目前已在相關裝置上得到應用,取得了較好的使用效果。
BOA和CGIC是兩個基于Linux的開源軟件,代碼采用C語言實現,程序小巧靈活、執行高效,非常適合于嵌入式系統的應用環境。但目前多用于Linux或μClinux的系統平臺上。鮮見有用于其他系統的相關報道。
其中BOA是一個單任務的HTTP服務器,它的設計目標主要是速度和安全。因此,它不像傳統的Web服務器,為每個訪問連接單獨開啟一個進程,也不會為處理多個連接而開啟多個自身的拷貝。BOA對所有活動的HTTP在內部進行連接處理,只為每個CGI連接啟動新的進程,在同等硬件下相比其他服務器具有更快的訪問速度。而CGIC是一個為支持通用網關接口CGI(Common Gateway Interface)而開發的C語言庫,通常和BOA聯合使用,它可接收由瀏覽器通過GET或POST方法傳輸過來的表單及文件數據,并提供了對這些數據進行解析的方法,使用非常方便,且源碼也易通過因特網獲得。
基于以上原因,本文主要基于這兩種技術來實現IED裝置內部的嵌入式web服務器功能。

1 系統概述
嵌入式Web服務器EWS(Embedded Web Server)是指將Web服務器引入到現場測試和控制設備中,在相應的硬件平臺和軟件系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基于互聯網的網絡測試和控制設備。其中,Web瀏覽器和EWS的交互過程如圖1所示。

a.jpg


首先由Web瀏覽器發出HTTP請求報文,并建立TCP連接,然后由EWS根據其請求報文來提供相應的狀態和頁面信息,若只是請求靜態頁面,則無需通過CGI,直接返回該對應頁面即可;反之則需要通過CGI來進行相關報文數據的解析,并根據解析結果來生成動態頁面以返回給客戶端瀏覽器。這樣,完成一次交互過程后,即可釋放該TCP連接。
本文的設計目標是將Web服務器的功能僅作為DSP/BROS中的一個任務,只在監聽到HTTP協議對應端口(通常為80)上的TCP連接請求時,才運行該任務。但是傳統的BOA并沒有對用戶訪問權限的控制對頁面的管理也依賴于Linux系統,因此,結合變電站運行的特殊性,本文所設計的EWS系統結構框圖如圖2所示。

b.jpg


系統運行時,由HTTP連接管理模塊負責對網絡端口進行監聽,當監聽到有連接請求到達后,即進入HTTP報文解析模塊進行處理,如果解析錯誤,則直接返回HTTP連接管理模塊,發出相應的響應報文并關閉該連接;否則,則根據對報文解析的結果,提取出本次要訪問的URL,并將其交給訪問權限管理模塊,以查看該客戶端是否具有足夠的權限;然后再轉由頁面文檔管理模塊進行處理,根據對報文的初步解析以及對訪問權限的判斷,由頁面文檔管理模塊來決定是否調用CGI,以實現文件的下載上傳及響應文檔的生成,從而將正確的響應報文及頁面文檔轉交給HTTP連接管理模塊進行網絡數據的應答回送。

2 功能實現
2.1 HTTP連接管理的功能實現
所謂HTTP連接管理,主要是指對連接到服務器端口的socket進行監聽、捕獲、讀寫、關閉,以及對HTTP請求報文協議字段的解析和響應報文的生成等操作。其中,BOA可提供完整的HTTP協議數據解析及響應報文生成的功能。因此,對和HTTP連接管理中相關的操作,基本上可直接采用BOA的相關代碼,實現起來難度不大。
BOA中的連接狀態切換示意圖如圖3所示。

c.jpg


當程序每次監聽到新的socket連接訪問接入時,首先對空閑隊列進行判斷,如果為空,則申請一個request結構空間,并將其插入就緒隊列的隊頭,否則可直接將一個結構空間從空閑隊列轉入;對當前正在處理的就緒隊列成員,當網絡阻塞時則將其移入阻塞隊列的隊頭,當訪問結束斷開連接時,則將該成員的空間信息移入空閑隊列;而當對阻塞隊列進行輪詢時,根據其成員所對應的socket上是有讀寫請求還是該連接已超時,分別將其移入就緒隊列或斷開連接移入空閑隊列。
以上過程在BOA中主要是通過get_request、fdset_update和process_requests這三個函數來實現的,它們也是實現移植的重點,其他函數則相對簡單。在移植過程中,為了適應嵌入式的應用環境,在系統初始化時,給空閑隊列分配了足夠大的隊列空間,并對操作時所涉及的一些動態內存分配的語句和結構進行修改,從而盡量減少連接過程中頻繁的內存申請。另外,傳統的BOA對每個CGI連接啟動新的任務,在此考慮到配置數據的即時生效以及系統資源的節約,仍然在EWS的任務環境中處理該CGI連接。實驗證明,這種處理方法簡單可行,而且在裝置的應用環境中對服務器的性能并無太大影響。
2.2 訪問權限管理的功能實現
為了應用時操作的安全性,本文將訪問的頁面分成兩類:一類為配置操作頁面,儀供認證用戶訪問;另一類為設備狀態頁面,可供任何用戶訪問。其控制主要是通過對用戶IP的判別及訪問頁面的分類來實現的。首先對用戶訪問的URL進行解析,如果訪問對象為配置操作頁面,則需要進行認證,在此通過一個用戶權限控制管理結構來對通過權限認證的用戶進行維護,并提供一個時間摔制機制,使通過認證的用戶在一定時間段內可持續有效的對服務器進行訪問。如果當前客戶端(訪問者IP)在用戶權限控制結構內,且未超時,則通過認證,由服務器根據本次申請的URL返回相應頁面;若超時則需要對本次訪問的URL進行重定向,返回密碼校驗頁面,給用戶提供密碼輸入的接口。如果訪問頁面為設備狀態頁面,則無需進行認證,直接由URL返回相應頁面即可。訪問權限認證程序流程如圖4所示。

d.jpg


通過以上過程的處理,即可實現對訪問權限的控制與管理。
2.3 頁面文檔管理及生成的功能實現
由于配置環境的需要,設計頁面較多,如果將所有頁面均存儲在Flash上,文件讀寫的問題將更為突出。為此,本文設計了一個如圖5所示的網頁頁面文件管理結構來對頁面文件進行管理。

e.jpg


下面介紹具體處理過程。
首先,對所有頁面無論是靜態還是動態頁面,均建立一個對應的模板文件,并將該模板文件的內容以全局靜態字符串的形式直接寫在程序中。在系統初始化時對各模板內容的大小進行統計,并按下式對各文件的最大容量進行粗略的估算:
mS=sizeof(pT)×1.2
其中:mS為估算的頁面內容最大尺寸,sizeof(pT)則為該頁面對應模板的實際大小(以上兩者均以字節為單位)。
按上式估算出頁面的最大尺寸后,為保證對頁面分配內存時空間的連續性,根據所有頁面的最大尺寸和,一次性分配一個較大的內存空間,并將該空間按各個頁面所對應的最大尺寸依次與該頁面對應的管理結構內的文件內容指針相關聯。這樣,每次因配置的修改導致頁面內容發生變化時,僅需對該指針所指向的空間內容進行修改即可,而僅在保存配置數據時,通過配置文件更新函數將其存儲在Flash中。這樣既避免了為修改頁面文件內容而申請內存的操作,又避免了為存儲頁面內容而頻繁進行的Flash讀寫操作,從而提高了該EWS的效率。

對于EWS中動態頁面的生成則要經過動態數據解析以及解析數據的模板頁面回填這兩個過程。在通常的Web交互中,大量動態數據是通過表單的形式體現在html頁面設計之中的。而一般上送的表單數據(文件上傳除外)在GET和POST兩種方法下,除了在HTTP請求報文中小現位置的不同外(GET方法下位于請求行,POST方法下位于實體主體部分),其組織形式并無差別,如下所示:
e_1-v 1&e 2=v 2…&e N=v N
其中e_N代表表單數據中的元素名,v_N代表該元素的取值。
因此,當連接管理模塊從請求報文中提取出表單數據后,即可對這兩種方法下的提交數據采用相同的解析方法。CGIC采用以下方法來實現其解析過程。
首先,通過對表單數據字符串的節點分析,用一個單向鏈表來對表單數據中的每個元素進行維護,在鏈表成員中包括了對元素名及其值的管理,并針對不同的元素類型提供了一系列接口。解析步驟如下:
①用于獲取列表框取值的函數接口cgiFormSelectSingle。
②用于獲取文本框取值的函數接口cgiFormString。
③用于獲取復選框取值的函數接口cgiFormCheckboxMultiple。
在需要訪問元素時,只需提供相應的元素名,就可方便地使用這些接口對管理鏈表遍歷來獲得相應元素的取值。
當CGIC移植時,只需對相應元素解析對應的函數進行所選系統的修改即可。需要注意的是,對列表和復選框等非字符取值的獲取,還需按照用戶定義的取值設置,對相應的接口進行一定的修改,以適應用戶對元素取值范圍的靈活要求。
所謂解析數據的模板頁面回填,是指在動態頁面設計中,按照模板中的頁面顯示格式,將頁面中各元素的取值寫入html模板文件中的對應位置。html標簽代碼如下:
value=“***”size=“15”/>
它在頁面上表示一元素名為“devName”,取值為“***”的文本框,在數據回填到模板頁面時,需要根據具體的取值如“devl”寫到原“***”的對應位置上去。結果如下:
value=“devl”size=“15”/>
本文采用以下方法來實現這一處理過程。首先,沒計頁面模板時在每個需要進行動態修改的頁面元素前加上不同的注釋語句,對以上html標簽,可加的注釋語句如下(單獨一行):

在每次解析完表單數據并且需要對動態頁面進行重新生成時,就可以通過對模板文件的逐行讀取,來查找相應的注釋語句,從而確定數據更新的位置。然后再根據具體的元素取值生成新的html標簽字符串,用來對注釋語句后的標簽字符串進行替換。通過以上過程,即可方便地實現解析數據的模板頁面回填,從而生成相應的動態頁面。
2.4 文件下載和上傳的功能實現
文件下載和上傳是服務器經常具有的一項功能,相對來說文件下載較為簡單,只需將下載時訪問的URL定位于目標文件,然后再由服務器將該文件的內容直接上送給瀏覽器。而文件上傳功能的實現則相對復雜,下面對其設計過程進行詳細的說明。
首先,要實現文件的上傳,在其頁面設計時必須采用POST方法來對表單數據進行提交,并且需要在頁面中將其編碼方式修改為“multipa rt/form-data”,否則將無法在瀏覽器端進行文件上傳。然后,通過html表單中的文件元素來進行上傳文件的選擇。
通過以上設置,上傳給服務器的http報文數據將以multipart的編碼形式出現。其特點是,在每個表單元素項的前后均加有一行分界字符串。以文件元素為例,其格式如下:
--------------------------------7db01d60ffc
Content-Disposition:form-data;name=“file”; filename=“1.TXT”Content-Type:text/plain
This is a txt file.
--------------------------------7db01d60ffc
其中,“----------------------------7db01d60ffc”為分界字符串。CGlC也提供了對該格式的解析支持。它首先提取出分界字符串,然后再通過cgiParsePostMultltpartInput函數的操作來實現報文中各表單元素數據以及文件數據的解析。提取出文件數據后,即可將文件內容按指定的路徑保存在相應的Flash存儲區中。

3 性能測試
通過以上各環節,即可實現一個相對完整的EWS。綜合以上各個模塊。
在主頻600 MHz的TMS320DM642處理器上對該EWS從收到請求建立連接到響應結束斷開連接的時間進行測試,EWS性能測試如表1所列。

f.jpg


其中,由于采用了框架結構進行設計,在訪問索引主頁時,涉及的訪問請求次數較多,所以其測試時間相比其他單次請求來說要較長一些??傮w來看,該EWS具有比較快速的服務響應時間,能夠滿足具體應用環境的要求。

結語
本文在BOA和CGIC的基礎上,通過對其代碼的修改以及HTTP協議報文的分析,將原本運行于Linux平臺上獨立的兩個程序進行有機的結合,成功地將其整合為DSP/BIOS中的一個任務,并提出了一種適合一般嵌入式系統使用的訪問權限及對Web頁面的管理及動態生成機制。同時,完成了文件的上傳與下載功能,成功實現了一個相對完整的EWS。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          韩国一区电影| 国产精品网站视频| 国产精品久久99| 国产精品久久久久久久久久久久久久| 国产夜色精品一区二区av| 韩曰欧美视频免费观看| 老牛影视一区二区三区| 亚洲韩国青草视频| 国产精品国码视频| 欧美激情一区二区三区四区| 亚洲欧美一区二区视频| 亚洲激情校园春色| 国产精品99久久久久久人| 久久9热精品视频| 国产精品美女xx| 欧美体内谢she精2性欧美| 在线观看亚洲一区| 国产精品高潮在线| 亚洲深夜福利在线| 欧美激情欧美激情在线五月| 国外成人在线视频网站| 最新热久久免费视频| 久久精品五月| 在线观看日韩精品| 亚洲一区二区黄| 亚洲欧美国内爽妇网| 国产精品国内视频| 韩国女主播一区二区三区| 一区二区三区四区五区精品视频| 欧美一级在线播放| 欧美精品日韩三级| 一区二区三区av| 亚洲男人影院| 欧美日韩一二三四五区| 亚洲日本在线观看| 久久激情综合网| 午夜精品美女自拍福到在线| 一区二区三区在线不卡| 国产在线精品成人一区二区三区| 国产精品每日更新在线播放网址| 欧美日韩国产123| 在线亚洲国产精品网站| 久久青草欧美一区二区三区| 欧美色道久久88综合亚洲精品| 国产精品一区久久久| 激情欧美一区| 欧美日韩成人激情| 亚洲精品视频在线| 午夜精彩国产免费不卡不顿大片| 国产精品久久久久久久久久久久久| 欧美另类一区| 久久久久久日产精品| 亚洲精品一级| 国产精品男gay被猛男狂揉视频| 毛片av中文字幕一区二区| 亚洲欧洲综合另类| 亚洲一区网站| 最新中文字幕一区二区三区| 亚洲男人的天堂在线aⅴ视频| 美女图片一区二区| 国产在线不卡精品| 久久国产精品久久久久久电车| 91久久精品国产91久久性色| 国产精品成人观看视频免费| 国产精品免费网站在线观看| 在线精品在线| 国产精品网站在线观看| 欧美日韩高清一区| 一区二区在线视频播放| 99re6这里只有精品视频在线观看| 久久精品中文字幕一区| 国产精品国产馆在线真实露脸| 欧美人体xx| 伊人蜜桃色噜噜激情综合| 在线国产精品播放| 国产亚洲一区二区三区| 一本大道久久a久久综合婷婷| 欧美午夜片欧美片在线观看| 国产亚洲一区精品| 国产日本欧洲亚洲| 国内偷自视频区视频综合| 欧美成人久久| 欧美成人免费在线观看| 欧美婷婷久久| 免费日韩av电影| 国产精品亚洲第一区在线暖暖韩国| 伊人狠狠色j香婷婷综合| 久久亚洲影院| 国产精品色网| 91久久精品国产91久久性色tv| 国产精品国产三级国产普通话99| 欧美在线播放高清精品| 欧美视频一区在线| 黑人一区二区| 亚洲一区久久久| 亚洲一区二区在线免费观看视频| 美国成人毛片| 欧美视频在线一区二区三区| 久久精品欧美| 亚洲国产日韩一级| 亚洲电影天堂av| 欧美精品偷拍| 久久婷婷久久| 欧美一区二区免费视频| 一本色道久久综合亚洲精品不卡| 国产一区二三区| 欧美日韩妖精视频| 亚洲男人的天堂在线| 久久精品一区二区国产| 欧美一区二粉嫩精品国产一线天| 亚洲综合色自拍一区| 亚洲一区二区成人在线观看| 国产精品综合不卡av| 欧美系列精品| 亚洲第一中文字幕| 在线亚洲国产精品网站| 国产日韩一区二区三区在线| 国产精品jvid在线观看蜜臀| 亚洲国内精品在线| 男人的天堂成人在线| 国产亚洲免费的视频看| 欧美福利电影在线观看| 久久久久久穴| 欧美日韩国产一区二区三区地区| 欧美在线播放视频| 欧美大片在线观看一区二区| 国产精品久久久久久久app| 欧美xart系列在线观看| 亚洲第一天堂无码专区| 亚洲男女自偷自拍| 好看的av在线不卡观看| 亚洲欧美一区二区激情| 欧美特黄a级高清免费大片a级| 免费久久久一本精品久久区| 亚洲三级影片| 国产无遮挡一区二区三区毛片日本| 国产亚洲精品久久飘花| 欧美日韩国产成人精品| 欧美专区在线观看一区| 亚洲第一精品夜夜躁人人躁| 欧美在线亚洲| 亚洲午夜一区| 欧美不卡视频一区| 久久精品国产69国产精品亚洲| 欧美一区二区三区久久精品茉莉花| 性欧美1819sex性高清| 欧美怡红院视频一区二区三区| 久久成人精品电影| 亚洲一线二线三线久久久| 久久精品日产第一区二区三区| 国内精品久久久久影院色| 99视频日韩| 亚洲一二三区精品| 欧美三级电影精品| 国产一区二区三区电影在线观看| 久久精品国产久精国产一老狼| 午夜在线观看欧美| 亚洲午夜精品网| 国产午夜精品理论片a级大结局| 亚洲欧洲在线观看| 久久精品欧美| 国产亚洲一区二区精品| 久久综合色婷婷| 亚洲曰本av电影| 美日韩精品免费| 亚洲破处大片| 亚洲砖区区免费| 亚洲高清在线| 欧美精品精品一区| 欧美精品一线| 欧美成人官网二区| 国内视频精品| 最新日韩在线| 国产精品99免费看| 国产美女高潮久久白浆| 亚洲在线国产日韩欧美| 亚洲综合国产精品| 黄色成人av| 日韩视频三区| 亚洲狼人综合| 在线成人h网| 欧美午夜精品久久久久久孕妇| 国产欧美va欧美不卡在线| 国产香蕉久久精品综合网| 欧美午夜大胆人体| 久久se精品一区二区| 亚洲欧美中文日韩在线| 亚洲人成7777| 亚洲精品美女免费| 国产色产综合产在线视频| 蜜臀a∨国产成人精品| 噜噜爱69成人精品| 欧美中文字幕不卡| 一区二区自拍| 性亚洲最疯狂xxxx高清| 国产精品theporn88| 羞羞答答国产精品www一本| 亚洲理论在线| 久久精品30| 国产精品久久一级| 欧美另类视频在线| 在线观看一区二区精品视频| 欧美成人三级在线| 亚洲乱码国产乱码精品精| 亚洲天堂视频在线观看| 久久综合伊人77777| 欧美一级淫片播放口| 国产精品午夜视频| 亚洲国产精品一区在线观看不卡| 国产精品国产三级国产aⅴ入口| 亚洲欧美日韩久久精品| 国产日韩欧美高清免费| 久久久五月天| 欧美午夜电影网| 久久久亚洲精品一区二区三区| 久久一二三区| 亚洲国产精品999| 韩国av一区二区三区| 久久精品国产96久久久香蕉| 亚洲国产精品久久久久婷婷884| 欧美三级午夜理伦三级中文幕| 欧美日韩国产一区二区三区| 精品69视频一区二区三区| 欧美1区免费| 亚洲欧美日韩中文在线制服| 久久久久久久综合日本| 亚洲精品一区二区三| 欧美黄色日本| 欧美精品一区视频| 欧美激情第六页| 欧美在线视频一区二区| 欧美自拍偷拍午夜视频| 亚洲欧美综合国产精品一区| 中文久久乱码一区二区| 亚洲高清在线观看| 久久精品日产第一区二区三区| 精品动漫3d一区二区三区免费版| 国产精品自拍一区| 狠狠色综合一区二区| 久久这里有精品视频| 日韩亚洲欧美成人一区| 久久综合色天天久久综合图片| 亚洲精品孕妇| 欧美激情女人20p| 国产精品wwwwww| 亚洲已满18点击进入久久| 亚洲高清久久久| 麻豆freexxxx性91精品| 国产乱码精品一区二区三区av| 国产精品国产三级国产| 国产日韩专区在线| 亚洲欧美国产毛片在线| 免费观看在线综合| 亚洲色图综合久久| 中文在线资源观看网站视频免费不卡| 亚洲私人黄色宅男| 亚洲深爱激情| 免费成人高清在线视频| 亚洲美女91| 亚洲网站啪啪| 欧美a级在线| 欧美性理论片在线观看片免费| 亚洲国产高清自拍| 国产亚洲一区二区三区在线观看| 国产精品网站视频| 在线中文字幕不卡| 亚洲精品久久久久久下一站| 欧美日韩亚洲精品内裤| 久久视频一区二区| 欧美日韩人人澡狠狠躁视频| 精品va天堂亚洲国产| 久久久久国内| 久久欧美肥婆一二区| 国内免费精品永久在线视频| 在线看国产一区| 午夜精品免费视频| 久久亚洲欧洲| 亚洲成色www久久网站| 亚洲大片在线| 欧美极品在线视频| 午夜精品久久久久久久久久久| 国产麻豆一精品一av一免费| 久久成人人人人精品欧| 欧美三日本三级少妇三99| 亚洲欧美日韩国产一区| 亚洲免费视频中文字幕| 欧美高潮视频| 欧美日本久久| 亚洲一级黄色av| 在线成人激情视频| 亚洲一区二区三区成人在线视频精品| 国内精品伊人久久久久av一坑| 亚洲国产小视频| 欧美粗暴jizz性欧美20| 日韩视频一区二区三区在线播放| 亚洲精品中文字幕在线| 亚洲一区二区在线免费观看视频| 欧美在线短视频| 黄色日韩网站| 欧美三区在线观看| 亚洲免费影视| 亚洲欧美在线一区二区| 国产欧美一区二区三区在线老狼| 欧美一区二区在线视频| 亚洲成在人线av| 国产视频在线观看一区二区| 欧美日韩国产精品| 亚洲无吗在线| 一区二区精品在线观看| 韩日精品视频一区| 午夜精品久久久久久久99水蜜桃| 欧美精品一区在线发布| 国产一区二区高清不卡| 国产精品免费一区二区三区在线观看| 欧美日本一区二区三区| 国产欧美精品久久| 国产专区欧美精品| 国产亚洲欧洲一区高清在线观看| 欧美深夜影院| 激情久久久久| 久久精品日韩一区二区三区| 久久精视频免费在线久久完整在线看| 永久免费毛片在线播放不卡| 亚洲人成啪啪网站| 久久丁香综合五月国产三级网站| 久久久久国产精品麻豆ai换脸| 亚洲承认在线| 伊人成人网在线看|