├── CMakeLists.txt ├── README.md ├── base ├── CMakeLists.txt ├── asynclog.cpp ├── asynclog.h ├── condition.cpp ├── condition.h ├── fixedbuffer.h ├── log.cpp ├── log.h ├── logfile.cpp ├── logfile.h ├── mutex.cpp ├── mutex.h ├── singleton.h ├── test │ ├── asynclog_test.cpp │ ├── condition_test.cpp │ ├── fixedbuffer_test.cpp │ ├── log_test.cpp │ ├── logfile_test.cpp │ ├── mutex_test.cpp │ ├── singleton_test.cpp │ ├── thread_test.cpp │ ├── threadpool_test.cpp │ └── writefile_test.cpp ├── thread.cpp ├── thread.h ├── threadpool.cpp ├── threadpool.h ├── writefile.cpp └── writefile.h ├── basecgi.cpp ├── basecgi.h ├── cgidispatch.cpp ├── cgidispatch.h ├── channel.cpp ├── channel.h ├── epoller.cpp ├── epoller.h ├── eventloop.cpp ├── eventloop.h ├── eventloopthread.cpp ├── eventloopthread.h ├── eventloopthreadpool.cpp ├── eventloopthreadpool.h ├── exampleCgi ├── examplecgi.cpp └── examplecgi.h ├── httpcgiserver.cpp ├── httpcgiserver.h ├── httpcgiservermain.cpp ├── httpmessage.cpp ├── httpmessage.h ├── implDoc.md ├── includecgiheader.h ├── install.sh ├── loginCgi ├── logincgi.cpp └── logincgi.h ├── minheap.cpp ├── minheap.h ├── netutil.cpp ├── netutil.h ├── simplebuffer.cpp ├── simplebuffer.h ├── tcpserver.cpp ├── tcpserver.h ├── test ├── channel_test.cpp ├── epoller_test.cpp ├── eventloop_test.cpp ├── httpcgiserver_test.cpp ├── minheap_test.cpp ├── netutil_test.cpp └── tcpserver_test.cpp ├── testResultByWebBench ├── pic │ ├── idle_top.png │ ├── long_connection_load.png │ ├── long_connection_top.png │ ├── short_connection_load.png │ └── short_connection_top.png └── testResult.md ├── uploadFileCgi ├── uploadfilecgi.cpp └── uploadfilecgi.h └── webFile ├── login ├── login.css ├── login.html ├── login.js └── login.png └── uploadFile └── index.html /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/README.md -------------------------------------------------------------------------------- /base/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/CMakeLists.txt -------------------------------------------------------------------------------- /base/asynclog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/asynclog.cpp -------------------------------------------------------------------------------- /base/asynclog.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/asynclog.h -------------------------------------------------------------------------------- /base/condition.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/condition.cpp -------------------------------------------------------------------------------- /base/condition.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/condition.h -------------------------------------------------------------------------------- /base/fixedbuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/fixedbuffer.h -------------------------------------------------------------------------------- /base/log.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/log.cpp -------------------------------------------------------------------------------- /base/log.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/log.h -------------------------------------------------------------------------------- /base/logfile.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/logfile.cpp -------------------------------------------------------------------------------- /base/logfile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/logfile.h -------------------------------------------------------------------------------- /base/mutex.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/mutex.cpp -------------------------------------------------------------------------------- /base/mutex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/mutex.h -------------------------------------------------------------------------------- /base/singleton.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/singleton.h -------------------------------------------------------------------------------- /base/test/asynclog_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/asynclog_test.cpp -------------------------------------------------------------------------------- /base/test/condition_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/condition_test.cpp -------------------------------------------------------------------------------- /base/test/fixedbuffer_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/fixedbuffer_test.cpp -------------------------------------------------------------------------------- /base/test/log_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/log_test.cpp -------------------------------------------------------------------------------- /base/test/logfile_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/logfile_test.cpp -------------------------------------------------------------------------------- /base/test/mutex_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/mutex_test.cpp -------------------------------------------------------------------------------- /base/test/singleton_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/singleton_test.cpp -------------------------------------------------------------------------------- /base/test/thread_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/thread_test.cpp -------------------------------------------------------------------------------- /base/test/threadpool_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/threadpool_test.cpp -------------------------------------------------------------------------------- /base/test/writefile_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/test/writefile_test.cpp -------------------------------------------------------------------------------- /base/thread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/thread.cpp -------------------------------------------------------------------------------- /base/thread.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/thread.h -------------------------------------------------------------------------------- /base/threadpool.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/threadpool.cpp -------------------------------------------------------------------------------- /base/threadpool.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/threadpool.h -------------------------------------------------------------------------------- /base/writefile.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/writefile.cpp -------------------------------------------------------------------------------- /base/writefile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/base/writefile.h -------------------------------------------------------------------------------- /basecgi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/basecgi.cpp -------------------------------------------------------------------------------- /basecgi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/basecgi.h -------------------------------------------------------------------------------- /cgidispatch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/cgidispatch.cpp -------------------------------------------------------------------------------- /cgidispatch.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/cgidispatch.h -------------------------------------------------------------------------------- /channel.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/channel.cpp -------------------------------------------------------------------------------- /channel.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/channel.h -------------------------------------------------------------------------------- /epoller.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/epoller.cpp -------------------------------------------------------------------------------- /epoller.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/epoller.h -------------------------------------------------------------------------------- /eventloop.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloop.cpp -------------------------------------------------------------------------------- /eventloop.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloop.h -------------------------------------------------------------------------------- /eventloopthread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloopthread.cpp -------------------------------------------------------------------------------- /eventloopthread.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloopthread.h -------------------------------------------------------------------------------- /eventloopthreadpool.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloopthreadpool.cpp -------------------------------------------------------------------------------- /eventloopthreadpool.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/eventloopthreadpool.h -------------------------------------------------------------------------------- /exampleCgi/examplecgi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/exampleCgi/examplecgi.cpp -------------------------------------------------------------------------------- /exampleCgi/examplecgi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/exampleCgi/examplecgi.h -------------------------------------------------------------------------------- /httpcgiserver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/httpcgiserver.cpp -------------------------------------------------------------------------------- /httpcgiserver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/httpcgiserver.h -------------------------------------------------------------------------------- /httpcgiservermain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/httpcgiservermain.cpp -------------------------------------------------------------------------------- /httpmessage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/httpmessage.cpp -------------------------------------------------------------------------------- /httpmessage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/httpmessage.h -------------------------------------------------------------------------------- /implDoc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/implDoc.md -------------------------------------------------------------------------------- /includecgiheader.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/includecgiheader.h -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/install.sh -------------------------------------------------------------------------------- /loginCgi/logincgi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/loginCgi/logincgi.cpp -------------------------------------------------------------------------------- /loginCgi/logincgi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/loginCgi/logincgi.h -------------------------------------------------------------------------------- /minheap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/minheap.cpp -------------------------------------------------------------------------------- /minheap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/minheap.h -------------------------------------------------------------------------------- /netutil.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/netutil.cpp -------------------------------------------------------------------------------- /netutil.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/netutil.h -------------------------------------------------------------------------------- /simplebuffer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/simplebuffer.cpp -------------------------------------------------------------------------------- /simplebuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/simplebuffer.h -------------------------------------------------------------------------------- /tcpserver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/tcpserver.cpp -------------------------------------------------------------------------------- /tcpserver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/tcpserver.h -------------------------------------------------------------------------------- /test/channel_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/channel_test.cpp -------------------------------------------------------------------------------- /test/epoller_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/epoller_test.cpp -------------------------------------------------------------------------------- /test/eventloop_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/eventloop_test.cpp -------------------------------------------------------------------------------- /test/httpcgiserver_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/httpcgiserver_test.cpp -------------------------------------------------------------------------------- /test/minheap_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/minheap_test.cpp -------------------------------------------------------------------------------- /test/netutil_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/netutil_test.cpp -------------------------------------------------------------------------------- /test/tcpserver_test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/test/tcpserver_test.cpp -------------------------------------------------------------------------------- /testResultByWebBench/pic/idle_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/pic/idle_top.png -------------------------------------------------------------------------------- /testResultByWebBench/pic/long_connection_load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/pic/long_connection_load.png -------------------------------------------------------------------------------- /testResultByWebBench/pic/long_connection_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/pic/long_connection_top.png -------------------------------------------------------------------------------- /testResultByWebBench/pic/short_connection_load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/pic/short_connection_load.png -------------------------------------------------------------------------------- /testResultByWebBench/pic/short_connection_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/pic/short_connection_top.png -------------------------------------------------------------------------------- /testResultByWebBench/testResult.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/testResultByWebBench/testResult.md -------------------------------------------------------------------------------- /uploadFileCgi/uploadfilecgi.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/uploadFileCgi/uploadfilecgi.cpp -------------------------------------------------------------------------------- /uploadFileCgi/uploadfilecgi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/uploadFileCgi/uploadfilecgi.h -------------------------------------------------------------------------------- /webFile/login/login.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/webFile/login/login.css -------------------------------------------------------------------------------- /webFile/login/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/webFile/login/login.html -------------------------------------------------------------------------------- /webFile/login/login.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/webFile/login/login.js -------------------------------------------------------------------------------- /webFile/login/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/webFile/login/login.png -------------------------------------------------------------------------------- /webFile/uploadFile/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stepByStepToSky/Web-Server/HEAD/webFile/uploadFile/index.html --------------------------------------------------------------------------------