HttpServer可通過(guò)HttpServer.ini文件進(jìn)行參數(shù)配置,參數(shù)更加豐富,是對(duì)命令行參數(shù)的補(bǔ)充。 HttpServer命令行參數(shù)介紹 啟動(dòng)服務(wù)器: HttpServer.exe -W d:web -H index.html -P 80 -M 10000 -W : web網(wǎng)站的發(fā)布路徑,如:d:web,如果路徑中有空格,可使用雙引號(hào)。 如不指定,則會(huì)在當(dāng)前服務(wù)運(yùn)行的目錄下創(chuàng)建web目錄,并以此為web網(wǎng)站目錄。 -H :web網(wǎng)站的主頁(yè),如:index.html, 如果不指定主頁(yè),則顯示web目錄的文件清單,可作為簡(jiǎn)單的文件服務(wù)器使用。 -P : web服務(wù)的端口號(hào),缺省值為80。 -M :最大并發(fā)量,缺省值為20000。 其它參數(shù)(后面不帶值,參數(shù)存在則表示容許或使用): -AllowUpload : 容許上傳 -CacheM :使用緩存(具體含義見(jiàn)下節(jié)的"UseCacheMem"字段) -CacheC : 使用緩存(具體含義見(jiàn)下節(jié)的"UseCacheClass"字段) 缺省值是指,如果該命令參數(shù)不指定,服務(wù)器使用的默認(rèn)參數(shù)。 HttpServer也可以通過(guò)配置文件進(jìn)行參數(shù)設(shè)置,配置文件為HttpServer.ini。 HttpServer配置文件參數(shù)介紹 WebPath : web網(wǎng)站的發(fā)布路徑,等同于命令行參數(shù)"-W"。 HomePage:web網(wǎng)站的主頁(yè),等同于命令行參數(shù)"-H"。 Port: web服務(wù)的端口號(hào),等同于命令行參數(shù)"-P"。 TimeOut: 超時(shí),單位秒,缺省值為60秒。 MaxConn: 最大并發(fā)數(shù),等同于命令行參數(shù)"-M",缺省值為20000。 PostDataPath: 上傳數(shù)據(jù)的保存路徑,缺省值為當(dāng)前用戶的temp目錄。 1、使用場(chǎng)景一:用戶在上傳文件時(shí),上傳文件保存的臨時(shí)路徑; 2、使用場(chǎng)景二:post請(qǐng)求時(shí),如果用戶post數(shù)據(jù)過(guò)大,超過(guò)"MaxPostCacheFileSize"字段指定的閥值, 則轉(zhuǎn)為文件存儲(chǔ),防止內(nèi)存使用過(guò)大; MaxPostCacheFileSize: POST請(qǐng)求時(shí),接收POST數(shù)據(jù)cache緩存的最大值,如果超過(guò)該值,則將緩存轉(zhuǎn)存為文件,單位為字節(jié)BYTE; MaxUploadFileSize:最大上傳文件尺寸,單位M字節(jié),缺省值為2G。 UseCacheMem:是否使用緩存,缺省值為0,表示不使用。 如使使用緩存,則服務(wù)器會(huì)用空間換時(shí)間,預(yù)先開辟若干連續(xù)的大內(nèi)存塊,并重載malloc和free函數(shù),在預(yù)先開辟的大內(nèi)存塊中尋找可用的“碎片化”內(nèi)存,從而減少在高并發(fā)下頻繁的申請(qǐng)和銷毀內(nèi)存導(dǎo)致的速度變慢。 UseCacheClass:是否使用結(jié)構(gòu)體(struct/class)緩存,缺省值為0,表示不使用。 如使用該值,則服務(wù)器會(huì)用空間換時(shí)間,即:根據(jù)MaxConn指定的并發(fā)數(shù),預(yù)先開辟出指定的內(nèi)存空間, 如果MaxConn為2萬(wàn),則會(huì)開辟對(duì)應(yīng)2萬(wàn)個(gè)結(jié)構(gòu)體(struct/class)用于保存HTTP會(huì)話時(shí)的上下文(context)數(shù)據(jù)。 同上,該值也是為了減少在高并發(fā)下頻繁的申請(qǐng)和銷毀內(nèi)存導(dǎo)致的速度變慢。 UseMappingFile: 是否使用Mapping File方式訪問(wèn)磁盤文件,缺省值為1,表示使用。 AccessControlAllowOrigin: 是否容許跨域,缺省值1,表示容許。 PrintMessage:是否在控制臺(tái)輸出HTTP請(qǐng)求,缺省值1,表示打印輸出。 注: 高并發(fā)時(shí)務(wù)必關(guān)閉控制臺(tái)輸出!!! AllowUpload:是否容許上傳,缺省值為0,表示不容許。 AllowCacheFile:是否容許文件緩存,缺省值為1,表示容許,該值有效時(shí),會(huì)對(duì)文件進(jìn)行緩存,避免頻繁的進(jìn)行磁盤文件操作。 MaxCacheFileSize:最大緩存的文件尺寸,缺省值為5(單位M),小于該值的文件會(huì)加載到內(nèi)存中,后續(xù)訪問(wèn)將不再?gòu)拇疟P中讀取而是直接讀內(nèi)存。 HttpServerContent-Type類型設(shè)置 通過(guò)ContentType.ini該配置文件,用戶可添加指定文件類型的Content-Type類型,當(dāng)瀏覽器從服務(wù)器讀取文件時(shí), 服務(wù)器會(huì)根據(jù)該配置文件返回指定的Content-Type給瀏覽器。 配置格式為如下,.文件擴(kuò)展名:Content-Type .mp4:video/mp4,表示如果是mp4文件,則Content-Type為video/mp4。 .cc:text/plain,表示如果是cc文件,則content-Type為text/plain。 HttpServerCGI網(wǎng)關(guān)設(shè)置 CGI網(wǎng)關(guān)設(shè)置在CGI.xml文件中。各節(jié)點(diǎn)含義如下: path:CGI網(wǎng)關(guān)文件所在的目錄,這里是全路徑,該路徑不一定在發(fā)布的web目錄下(不在web目錄下會(huì)更安全)。 timeout:執(zhí)行網(wǎng)關(guān)程序的超時(shí),單位秒,缺省值為10秒,防止有的網(wǎng)關(guān)程序不退出,或長(zhǎng)時(shí)間不退出。 cgi:子節(jié)點(diǎn),每個(gè)cgi子節(jié)點(diǎn)代表一個(gè)CGI網(wǎng)關(guān)類型。 cgi/name:該CGI節(jié)點(diǎn)名稱,比如python,表示該CGI中的網(wǎng)關(guān)文件是python腳本。 cgi/exe:執(zhí)行該腳本的應(yīng)用程序全路徑,如:c:python25python.exe。 cgi/action:響應(yīng)配置,該節(jié)點(diǎn)代表一個(gè)需要處理的Http請(qǐng)求命令(在服務(wù)端則為一個(gè)應(yīng)用),該節(jié)點(diǎn)有兩個(gè)字段,如下: cgi/action/appname:url中的請(qǐng)求命令(應(yīng)用名),如:python/test1.do cgi/action/filename:處理上述請(qǐng)求的文件,如:test1.py,該文件必須在上述path節(jié)點(diǎn)指定的目錄中。 說(shuō)明:當(dāng)用戶發(fā)送 http://server:port/python/test1.do請(qǐng)求時(shí),網(wǎng)關(guān)會(huì)執(zhí)行test1.py腳本,并將腳本執(zhí)行的結(jié)果返回給瀏覽器。 1、QUERY-SRING數(shù)據(jù)的傳遞 python/test1.do?key1=value1&key2=value2 "key1=value1&key2=value2"會(huì)通過(guò)命令行參數(shù)的方式傳遞給調(diào)用者。 python中為:sys.argv[1],詳見(jiàn)案例:test2.py。 2、POST-DATA數(shù)據(jù)的傳遞 POST數(shù)據(jù)的傳遞通過(guò)讀取標(biāo)準(zhǔn)的輸入獲取,python中為:sys.stdin.readline(),詳見(jiàn)案例:test1.py。 注意: 1、HttpServer沒(méi)有通過(guò)環(huán)境變量來(lái)傳遞QUERY-STRING; 2、CGI網(wǎng)關(guān)數(shù)據(jù)返回時(shí),服務(wù)器會(huì)自動(dòng)添加Content-Length字段(根據(jù)返回?cái)?shù)據(jù)“rnrn”來(lái)計(jì)算HTTP響應(yīng)頭和響應(yīng)體的各自長(zhǎng)度); 3、如果CGI網(wǎng)關(guān)返回?cái)?shù)據(jù)中沒(méi)有"rnrn"來(lái)分割HTTP響應(yīng)頭和響應(yīng)體,則服務(wù)器會(huì)認(rèn)為響應(yīng)數(shù)據(jù)是明文,并自動(dòng)添加類型為“text/plain”的響應(yīng)頭,并返回給瀏覽器; 用戶可根據(jù)需要配置多個(gè)cgi子節(jié)點(diǎn),用于處理不同類型的網(wǎng)關(guān)程序(或腳本)。 cgi配置的保留節(jié)點(diǎn)有兩個(gè),一個(gè)是bat,一個(gè)是exe。對(duì)于windows下的bat格式腳本文件,是不需要指定執(zhí)行程序,同樣exe文件也是。 點(diǎn)擊此處下載,網(wǎng)關(guān)案例文件在cgi-bin目錄中 網(wǎng)關(guān)配置文件如下: python 網(wǎng)關(guān)文件案例: BAT批處理網(wǎng)關(guān)文件案例: exe網(wǎng)關(guān)文件案例: HttpServer內(nèi)置上傳接口 接口名稱:command/upload.do 使用post命令,可將文件上傳到web發(fā)布目錄。 如果要將文件上傳至web目錄的子目錄中,可通過(guò)path參數(shù)指定,如下 command/upload.do?path=subfolder,subfolder為相對(duì)于web目錄中的子目錄。
HttpServer更新日志 將bug掃地出門進(jìn)行到底 優(yōu)化用戶反饋的問(wèn)題,提升細(xì)節(jié)體驗(yàn) 使用編程語(yǔ)言寫的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |
1深度技術(shù)win10正式版ghost(32位)旗艦......
2番茄花園win10 X86 ghost 標(biāo)準(zhǔn)通......
3番茄花園Win10_Ghost Win10 64......
4雨林木風(fēng) GHOST WIN10 X64 快速裝......
5深度技術(shù)GHOST WIN10 X64 尊貴專業(yè)......
6筆記本W(wǎng)in10系統(tǒng) 64位官方正式版2023年......
7筆記本win10正式版ghost(32位)旗艦免......
8雨林木風(fēng)win10(32位)ghost 修正專業(yè)......