-
Notifications
You must be signed in to change notification settings - Fork 0
An Http Application Server implements Java Servlet 2.4 Specification. It is an Http Server (servlet container) built on top of my own thread pool, blocking queue, which handles incoming request to corresponding servlets.
xuyimeng/Multithread-Http-Server
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Author name: ___Yimeng Xu______
*******************************************************************
An Http Application Server implements Java Servlet 2.4 Specification. It is an Http Server (servlet container) built on top of my own thread pool, blocking queue, which handles incoming request to corresponding servlets.
*******************************************************************
instructions for building and running your solution?
(include detailed instructions, or write 'None')
1. To run HttpServer, has to Specify three arguments: port number and root directory and path to web.xml
Testing files is stored in "/HW1/files" directory
Testing web.xml directory is in “/HW1/conf” directory
**suggested input argument: 8888 /...your directory path.../HW1/files
/… path to ../HW1/conf/web.xml
2. Testing HTTP/1.1 functions:
a. require the Host: header from HTTP 1.1 clients
when test HTTP/1.1 request, must specify host header or a 400 error will response
** Eg:telnet localhost 8888
GET /test.txt HTTP/1.1
HOST:localhost:8888
b. accept absolute URL's in a request
** Eg:telnet localhost 8888
GET http://localhost:8888/test.txt HTTP/1.1
HOST:localhost:8888
c. use the "100 Continue" response appropriately
When server receives the first line of an HTTP 1.1 (or later) request
it will respond with either "100 Continue"
d. include the Date: header in each response
e. handle requests with If-Modified-Since: or If-Unmodified-Since: headers
f. Supporting the GET and HEAD methods
** Eg:telnet localhost 8888
HEAD /test.txt HTTP/1.1
HOST:localhost:8888
Note:If the method is not GET or HEAD or POST(later use) a 501 error will produce
g. Supporting HTTP 1.0 Requests
** Eg:GET /test.txt HTTP/1.0
3.Test Directory request and request with MIME files
In your Chrome or FireFox browser, by input localhost:8888/ the content of root directory will be listed
By clicking the list of files/sub directory the file will be shown in the browser page
4.Test special URLs
a. Use GET /control HTTP/1.0 in Telnet or localhost:8888/control in browser can get to the control panel
b. Use GET /shutdown HTTP/1.0 in Telnet or localhost:8888/shutdown in browser can shutdown server
5.Stress test the server with Apachebench
use: ab -n 3000 -c 1000 http://localhost:8888/test.txt
current thread number is 30, blocking queue size is 1000.
defined as final variable in HTTPServer,could modify there
MileStone 2:
3. Testing servlet container function:
There are 3 Unit test included in the test folder could use them to test FakeSession/FakeResponse/FakeRequest
Use servlet to
Did you personally write _all_ the code you are submitting
(other than code from the course web page)?
[*] Yes
[ ] No
Did you copy any code from the Internet, or from classmates?
[ ] Yes
[*] No
Did you collaborate with anyone on this assignment?
[ ] Yes
[*] No
About
An Http Application Server implements Java Servlet 2.4 Specification. It is an Http Server (servlet container) built on top of my own thread pool, blocking queue, which handles incoming request to corresponding servlets.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published