資源簡介
測試方式(依次在瀏覽器輸入一下內(nèi)容進行不同情形的測試):
127.0.0.1:9988
127.0.0.1:9988/hehe.html
127.0.0.1:9988/login.html
127.0.0.1:9988/haha?x=10&y=20
也可以下載fiddler工具進行更全面的模擬測試!
1、支持GET/POST方法
2、支持CGI
3、支持錯誤返回
4、支持chunked數(shù)據(jù)的解析
缺點:
1、支持的方法不夠全面
2、CGI實現(xiàn)不夠科學,可以嘗試使用FASTCGI
3、不支持https
4、不支持回應chunked數(shù)據(jù)
感興趣的同學可以繼續(xù)完善相關功能.

代碼片段和文件信息
#include?
#include?
using?namespace?std;
#define??MAXLINE??1024
int?main()
{
char?*buf?*p;
char?name[MAXLINE]?passwd[MAXLINE]?content[MAXLINE];
/*?Extract?the?two?arguments?*/
if?((buf?=?getenv(“QUERY_STRING“))?!=?NULL)?{
p?=?strchr(buf?‘&‘);
if?(p){
*p?=?‘\0‘;
strcpy(passwd?p?+?1);
}
else{
strcpy(passwd?“null“);
}
strcpy(name?buf);
}
else{
printf(“---------error?arg!----------“);
fflush(stdout);
exit(1);
return?0;
}
/*?Make?the?response?body?*/
_snprintf_s(content?MAXLINE?_TRUNCATE?“welcome?to?my?web:%s?and?%s\r\n“?name?passwd);
_snprintf_s(content?MAXLINE?_TRUNCATE?“%sthis?is?a?dynamic?web!\r\n“?content);
_snprintf_s(content?MAXLINE?_TRUNCATE?“%sthanks?for?visiting!\r\n“?content);
printf(“%s“?content);
fflush(stdout);
exit(0);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2943??2017-10-12?15:24??webcgi\Debug\webcgi.log
?????文件????????650??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\cl.command.1.tlog
?????文件??????12194??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\CL.read.1.tlog
?????文件????????460??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\cl.write.1.tlog
?????文件???????1010??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\li
?????文件???????3298??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\li
?????文件????????380??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\li
?????文件????????168??2017-10-12?15:24??webcgi\Debug\webcgi.tlog\webcgi.lastbuildstate
?????文件????????880??2017-10-12?15:24??webcgi\main.cpp
?????文件???????4139??2017-10-11?17:47??webcgi\webcgi.vcxproj
?????文件????????956??2017-10-11?17:14??webcgi\webcgi.vcxproj.filters
?????文件????????165??2017-10-11?17:14??webcgi\webcgi.vcxproj.user
?????文件???????1014??2017-10-11?16:33??webserver\Debug\webserver.Build.CppClean.log
?????文件?????????53??2017-10-07?12:36??webserver\Debug\webserver.lastbuildstate
?????文件????????706??2017-10-12?15:24??webserver\Debug\webserver.log
?????文件???????1290??2017-10-12?15:08??webserver\Debug\webserver.tlog\cl.command.1.tlog
?????文件??????61558??2017-10-12?15:08??webserver\Debug\webserver.tlog\CL.read.1.tlog
?????文件???????1726??2017-10-12?15:08??webserver\Debug\webserver.tlog\CL.write.1.tlog
?????文件???????1158??2017-10-12?15:08??webserver\Debug\webserver.tlog\li
?????文件???????3718??2017-10-12?15:08??webserver\Debug\webserver.tlog\li
?????文件????????498??2017-10-12?15:08??webserver\Debug\webserver.tlog\li
?????文件????????168??2017-10-12?15:24??webserver\Debug\webserver.tlog\webserver.lastbuildstate
?????文件??????28383??2017-10-12?15:08??webserver\HttpServer.cpp
?????文件???????4875??2017-10-12?11:15??webserver\HttpServer.h
?????文件???????5508??2017-10-12?10:00??webserver\main.cpp
?????文件???????4318??2017-10-11?16:33??webserver\webserver.vcxproj
?????文件???????1245??2017-10-11?16:33??webserver\webserver.vcxproj.filters
?????文件????????489??2017-10-09?11:15??webserver\webserver.vcxproj.user
?????文件???????9118??2017-10-04?13:42??webserver\復件?HttpServer.cpp
?????文件???????1317??2017-10-02?19:13??webserver\復件?HttpServer.h
............此處省略69個文件信息
評論
共有 條評論