亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        簡單HTTP Server的設計與實現

        2017-03-22 12:39:23周暢王賾
        軟件工程 2017年1期
        關鍵詞:萬維網

        周暢 王賾

        摘 要:超文本傳輸協(xié)議(HTTP)是分布式、協(xié)作和超媒體信息系統(tǒng)的應用協(xié)議。HTTP Server是一個監(jiān)聽特定端口TPC連接,對客戶端請求進行處理的一個應用。得益于高級語言對HTTP協(xié)議的內置支持,我們也可以使用簡單的方式來實現一個較完整功能的HTTP Server。本文主要是研究一個HTTP Server的簡單實現,在實現的過程中,能夠體現出POST、GET方法,現已將要求完成,本文一共分為三個章節(jié),分別對于此次設計進行闡述。

        關鍵詞:超文本傳輸協(xié)議服務;萬維網;外部應用程序

        中圖分類號:TP393.0 文獻標識碼:A

        1 引言(Introduction)

        CGI是WWW技術中最重要的技術之一,有著不可替代的重要地位。CGI是外部應用程序(CGI程序)與Web服務器之間的接口標準,是在CGI程序和Web服務器之間傳遞信息的規(guī)程[1]。CGI規(guī)范允許Web服務器執(zhí)行外部程序,并將它們的輸出發(fā)送給Web瀏覽器,CGI將Web的一組簡單的靜態(tài)超媒體文檔變成一個完整的新的交互式媒體。使在網絡服務器下運行外部分應用程序(或網關)成為可能。CGI-BIN目錄是存放CGI腳本的地方。這些腳本使Web服務器和瀏覽器能運行外部程序,而無需啟動另一個程序[2]。

        2 項目背景(The project background)

        在HTTP中定義了很多和服務器之間進行交互的方法,例如平時我們所看到的GET、POST、PUT、DELETE[3,4]。其中資源描述符是URL,在這里我們可以這樣理解,一個URL地址可以描述一個網絡上的資源,而前面所提到的HTTP中的,GET、POST、PUT、DELETE所對應的分別是這個資源的查、改、增、刪四個操作,而這其中的POST一般適用于資源信息的更新,GET用于信息的獲取/查詢,因為早期的系統(tǒng)對于DELETE是不支持的,所以說PUT和DELETE用的比較少。

        POST方法是HTTP中的一個重要的組成部分,這種方法一般是用來項目的服務器發(fā)出更新請求,在請求中附有請求實體[5]。

        在客戶機和服務器之間進行請求-響應時,這兩種方法是最常被用到的。

        POST:向指定的資源提交要被處理的數據,采用這種方法,查詢查詢字符串(名稱/值對)是在POST請求的HTTP消息主體中發(fā)送的。

        GET:從指定的資源請求數據,采用這種方法查詢字符串(名稱/值對)是在GET請求的URL中發(fā)送的[6,7]。

        除以上介紹的內容之外,這兩種方法在安全性等方面也有一定的區(qū)別,表1列出了兩種方法在具體項目上的區(qū)別。

        3 具體實現(Implementation)

        實現HTTP Server的簡單設計有多種語言可以選擇,但是本文采取的是Python語言進行設計。Python是一種代表簡單主義思想的語言[8]。它的底層是用C語言寫的,很多標準庫和第三方庫也都是用C寫的,運行速度非常快,無需考慮諸如如何管理你的程序使用的內存一類的底層細節(jié)[9]。

        3.1 代碼編寫

        程序的代碼編寫主要包括post、get方法實現,以及服務器的建立,其中在代碼編寫的過程中,post和get的體系基本相同,所以這里只介紹get的方法,post就不再進行贅述,其中get的代碼思路主要是首先從cgi中將存儲的數據調到form中,接著取出字段名是name的字段,取出字段名是comment的字段,最后打印html,并且加入name comment。除了get、post的編寫之外還有服務器的建立,大體思路是重寫http server類,然后獲得cgi句柄,接著設置cgi腳本路徑,最后是監(jiān)聽端口的死循環(huán)。

        以上是簡單的介紹一下程序代碼的思路,為了代碼編寫過程中能夠更加的簡潔一些,才會采用Python這種編程語言,下面附上代碼的截圖以及代碼的注釋,以下兩個圖分別是get和服務器創(chuàng)建的代碼及注釋,post的不再進行重復。

        3.2 軟件實現

        建立在理解以上概念的基礎之上,接下來對于此項目進行具體的實現,在創(chuàng)建項目的時候采用的Python語言,首先介紹一下程序實現的流程,程序運行開始之后,要建立一個服務器,然后創(chuàng)建監(jiān)聽端口,接下來用戶會發(fā)送一個請求,在接收到用戶的請求之后,要對用戶的請求類型進行判斷,因為在HTTP中定義了很多和服務器之間進行交互的方法,如前面提到的GET、POST、PUT、DELETE,但是由于此次項目只是針對GET、POST方法的實現進行設計,所以說PUT、DELETE在這里不做考慮。

        判斷用戶的類型之后,要對用戶的要求進行處理,例如,用戶的請求類型是POST,那么接下來要在CGI-BIN中找到相對應的腳本,找到腳本之后,對請求進行處理,并且將數據返回到監(jiān)聽端口,GET類型的流程和POST是一樣的,因為沒有涉及DELETE和PUT方法,所以如果用戶的要求是屬于這兩種類型的話,那么將不做任何處理,直接返回到監(jiān)聽端口[10]。

        如圖3所示是程序實現過程中的流程圖,程序的流程圖主要分為兩個部分,一個是主程序的流程圖,另外一個是在進行判斷是后的流程圖。

        圖3所顯示的是該程序的主程序流程圖,表現了不管采用的是什么樣的方法,都是按照這樣的流程進行,但是正如前面所說的那樣,這個程序在處理用戶請求的時候認可的是POST和GET兩種方法,所以說當用戶的請求是DELETE或者是PUT的時候,程序是不會進行數據處理的,如圖4所示請求類型判斷時候的具體方法。

        4 結論(Conclusion)

        在這篇文章中,我們討論實現HTTP Server的一些方法,并分析了其優(yōu)缺點。經過對比,我們針對GET和POST方法進行了設計。并使用Python語言編寫腳本,對程序進行測試,最終實現簡單HTTP Server的設計。

        參考文獻(References)

        [1] Huang B,Lin H.A Java/CGI Approach to Developing a Geographic Virtual Reality Toolkit on the Internet[J].Computers & Geosciences,2002,28(1):13-19.

        [2] Min B,Nahm E,Kim H.An analytic Model of an HTTP

        Server[J].Journal of the Electrochemical Society,2002,140(140):1080-1085.

        [3] Laliberte D,Hamilton M.Experimental HTTP Methods to Support Indexing and Searching[J].Journal of Biomolecular Structure & Dynamics,1996,1(6):1543-1546.

        [4] Demiryurek U,Shahabi C,Banaei-Kashani F.Efficient K-nearest Neighbor Search in Time-Dependent Spatial Networks:US8566030[P].2013.

        [5] 劉一峰,劉冰,郭良動.抓取HTTP協(xié)議POST文本數據方法設計[J].中國科技信息,2016(18):26-27.

        [6] 杜雷,辛陽.基于規(guī)則庫和網絡爬蟲的漏洞檢測技術研究與實現[J].信息網絡安全,2014(10):38-43.

        [7] 齊紅心.PHP開發(fā)過程中頁面參數傳遞方法分析[J].軟件導刊,2016,15(1):6-9.

        [8] Salvatier J,Wiecki T,Fonnesbeck C.Probabilistic Programming in Python using PyMC[J].Statistics,2015.

        [9] Perkel J M.Programming:Pick up Python[J].Nature,2015,

        518(7537):125-126.

        [10] 狄剛.HTTP實現代理服務器及緩存替換算法的研究[D].吉

        林大學,2010.

        作者簡介:

        周 暢(1993-),女,碩士生.研究領域:網絡安全.

        王 賾(1976-),男,博士,副教授.研究領域:網絡安全.

        猜你喜歡
        萬維網
        基于萬維網大數據的農藥場地土壤污染快速預測方法研究*
        土壤學報(2022年3期)2022-08-27 08:41:48
        “開放共享,合作共贏”是推動互聯(lián)網不斷發(fā)展的精神力量
        共享比獨占更重要
        基于測繪地理信息技術的山洪質災害信息動態(tài)提取方法研究
        西部資源(2020年6期)2020-03-01 00:56:17
        5 Fast Facts About the World Wide Web on Its 30th Birthday萬維網30年:小知識一覽
        英語世界(2019年7期)2019-09-10 07:22:44
        萬維網30歲,創(chuàng)始人發(fā)公開信表達“不滿意”
        WWW是什么意思
        萬維網的HTTP和FTP協(xié)議
        藝術科技(2016年6期)2016-05-14 10:42:28
        WWW:通往世界的窗口
        CHIP新電腦(2015年2期)2015-12-22 17:54:09
        淺議互聯(lián)網網格技術
        亚欧中文字幕久久精品无码| 日韩伦理av一区二区三区| 男女激情视频网站在线| 在线观看老湿视频福利| 无码人妻丰满熟妇片毛片| 无码一区二区三区在线在看| 亚洲熟女一区二区三区不卡| 洲色熟女图激情另类图区| 欧洲熟妇色 欧美| 欧美成人专区| 日本久久精品国产精品| 丝袜美腿国产一区精品| 看黄a大片日本真人视频直播| 欧美黄色免费看| av在线男人的免费天堂| 午夜被窝精品国产亚洲av香蕉 | 久久亚洲国产高清av一级 | 亚洲人成影院在线无码观看| 蜜桃网站在线免费观看视频| 日本av亚洲中文字幕| 超碰97资源站| 国产AⅤ无码久久丝袜美腿| 精品奇米国产一区二区三区| 午夜影视免费| 使劲快高潮了国语对白在线| 探花国产精品三级在线播放| 99青青草视频在线观看| 国产精品成人3p一区二区三区| 一本色道久久99一综合| 久久久精品国产亚洲av网| 午夜天堂一区人妻| 丰满人妻被黑人中出849 | 久久亚洲av成人无码国产最大| 又湿又黄裸乳漫画无遮挡网站 | 久久精品国产亚洲AV高清y w| 日本成年一区久久综合| 色综合久久久久久久久久| 久久久久中文字幕精品无码免费| 日本熟妇裸体视频在线| 18岁日韩内射颜射午夜久久成人| 亚洲欧美国产双大乳头|