[發明專利]一種面向CGI服務的通訊方法有效
| 申請號: | 201510058580.4 | 申請日: | 2015-02-04 |
| 公開(公告)號: | CN104657135A | 公開(公告)日: | 2015-05-27 |
| 發明(設計)人: | 趙軍 | 申請(專利權)人: | 北京中搜網絡技術股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F17/30 |
| 代理公司: | 北京安博達知識產權代理有限公司 11271 | 代理人: | 徐國文 |
| 地址: | 100191 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 cgi 服務 通訊 方法 | ||
技術領域
本發明涉及網絡交互技術,具體涉及一種面向CGI服務的通訊方法。
背景技術
HTML是編制網頁的基本語言,但是它只能用于靜態的網頁,要實現動態的網頁編程技術,目前主要的動態實現技術:ASP,PHP,JSP,CGI等技術。為解決web服務器和用戶之間的交互性,用公用網關接口技術CGI完成動態網頁的制作,由web瀏覽器提交搜索引擎頁面的查詢語句給web服務器后,web服務器調用搜索引擎程序,把檢索到相關結果再回傳給web服務器和web瀏覽器,通過CGI技術成功實現了瀏覽器和可執行程序之間的動態交互性,達到用戶快速獲得查詢信息的目標。
epoll是Linux下多路復用IO接口select/poll的增強版本,它能顯著提高程序在大量并發連接中只有少量活躍的情況下的系統CPU利用率,因為它會復用文件描述符集合來傳遞結果而不用迫使開發者每次等待事件之前都必須重新準備要被偵聽的文件描述符集合。另一原因就是獲取事件的時候,它無須遍歷整個被偵聽的描述符集,只要遍歷那些被內核IO事件異步喚醒而加入Ready隊列的描述符集合即可。可以非常高效的處理數以百萬計的socket句柄,比起以前的select和poll效率高出很多。
大部分web后端程序目前都是用腳本語言寫的,需要解釋器解釋執行,效率較低,實施時采用的是單進程、阻塞IO的方式,性能不夠高,并且頻繁使用內存會造成大量的內存碎片并進而降低性能,容易造成內存泄露。
發明內容
為了克服上述現有技術的不足,本發明提供一種面向CGI服務的通訊方法,用戶通過web瀏覽器向服務器提出請求,服務器系統基于epoll異步模型,對其查詢請求進行分析,然后到索引數據庫中檢索與之相關的文檔信息內容,最后將檢索結果由CGI程序創建網頁展示給用戶。
為了實現上述發明目的,本發明采取如下技術方案:
一種面向CGI服務的通訊方法,所述方法包括如下步驟:
(1)用戶通過web瀏覽器向服務器提出請求,CGI程序將用戶請求轉化為URL編碼;
(2)服務器解析URL編碼并獲取內存,基于epoll異步模型對請求進行操作,并到索引數據庫中檢索相關的文檔信息內容;
(3)將檢索結果由CGI程序創建HTML頁面展示給用戶。
本發明提供的優選技術方案中,所述步驟(2)包括如下步驟:
A、初始化內存池,讀入配置文件;
B、接收并解析URL編碼,從內存池獲取可用內存,將URL解碼后的數據保存在內存中,根據接收的內容鏈接服務器;
C、初始化epoll模型,將請求數據和服務器鏈接指針地址寫到epoll中;
D、調用epoll_wait之前檢測用戶請求是否超時,若超時則返回超時信息給用戶,終止執行以下操作;否則將epoll_wait輪詢到的數據指針壓入處理隊列等待處理;
E、根據隊列中請求數據的數據狀態,將用戶請求轉發給索引后臺程序,當從索引后臺程序返回完整的信息后,對信息進行解析并返回給用戶。
本發明提供的第二優選技術方案中,所述URL編碼以name=value的形式進行編碼,格式為“name1=value1&name2=value2&name3=value3…”。
本發明提供的第三優選技術方案中,解析URL編碼的方法步驟如下:
(a)數據流中找到字符“=”,標志著一個表單變量名的結束;
(b)數據流中找到字符“&”,標志著一個表單變量值的結束;
(c)數據流中將字符“+”轉化為空格;
(d)數據流中將“%xx%xx”格式的轉化為漢字。
本發明提供的第四優選技術方案中,步驟E中所述數據狀態包括連接、收取和發送。
與現有技術相比,本發明的有益效果在于:
本發明采用epoll機制作為網絡通訊模型,使用效率高,提高了web服務器和用戶之間的交互性,采用內存池技術,減少了內存碎片,較大地提高了內存使用性能,顯著降低了內存的泄露。
附圖說明
圖1是一種面向CGI通訊方法的原理圖
圖2是一種面向CGI通訊方法的流程圖
具體實施方式
下面結合附圖對本發明作進一步詳細說明。
如圖1所示,面向CGI服務的通訊方法,該方法步驟如下:
(1)用戶通過web瀏覽器鏈接web服務器提出請求,CGI程序將用戶請求表單轉化為URL編碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京中搜網絡技術股份有限公司;,未經北京中搜網絡技術股份有限公司;許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510058580.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于腳本的報告生成系統及方法
- 下一篇:一種交通圖象處理系統





