1
0
mirror of https://github.com/fumiama/simple-http-server.git synced 2026-06-11 21:50:41 +08:00

Update README.md

This commit is contained in:
源文雨
2021-06-10 00:05:51 +08:00
committed by GitHub
parent 7fb61d8b21
commit 811d6b373e

View File

@@ -5,6 +5,22 @@ Created November 1999 by J. David Blackstone.
Modified June 2021 by Fumiama(源文雨)
# Protocol
A necessary subset of `HTTP 1.0` with following options of request header being supported
### From client
- Content-Length
### From server
- Content-Length
- Content-Type (only support text/plain image/x-icon text/css text/html)
- Server
### Code
- 200 OK
- 400 BAD REQUEST
- 404 NOT FOUND
- 500 Internal Server Error
- 501 Method Not Implemented
# Features
1. Serve files
@@ -32,4 +48,22 @@ simple-http-server -d port chdir
- **-d** - run as daemon
- **port** - bind server on this port (0 for a random one)
- **chdir** - change root dir to here
- **chdir** - change root dir to here
# CGI usage
When you put a executable file into the web path, the server will call `execl` to run it while passing 3 parameters as below
```c
argv[0] = path; //Path of the executable file
argv[1] = method; //request method (GET/POST)
argv[2] = query_string; //the query string, like "a=1&b=2&c=3"
```
The server will read a `4 bytes` unsigned integer from pipe, indicating the `length` of the remaining content. Then it will send `length` bytes of data to the client directly with nothing being decorated, which means that you need to assemble the HTTP header by yourself.
Here is a CGI example [CMoe-Counter](https://github.com/fumiama/CMoe-Counter)
And its realization is here:
<div align=center> <a href="#"> <img src="http://pan.fumiama.top:42412/cmoe?name=shttps&theme=gb" /> </a> </div>