mse6 sends mock HTTP1.1 responses to test edge cases in user agents, such as bad headers or slow writes.
Up and running
Docker
docker pull simonmittag/mse6 &&
docker run -p8081:8081 simonmittag/mse6
Osx
brew install simonmittag/cli/mse6 &&
mse6
Golang
go get github.com/simonmittag/mse6 &&
go install github.com/simonmittag/mse6/cmd/mse6 &&
mse6
Usage
λ mse6 -h
Usage of mse6:
-p int
the http port (default 8081)
-t server self test
-u string
the path prefix (default "/mse6/")
-v print the server version
-w int
wait time for server to respond in seconds (default 3)
Routes
GET /mse6/die
Kills the server process without sending a response
GET /mse6/get
Standard json response with status code 200
POST /mse6/post
Standard json response with status code 200
GET /mse6/slowheader?wait=n
Sends headers but only after waiting for n seconds.
Alternatively configure default with -w=n on cli
GET /mse6/slowbody?wait=n
Sends body after initial lag of n/2s, then sends remaining body without chunking after n/2s.
Alternatively configure default with -w=n on cli
GET /mse6/badcontentlength
Sends invalid content length header, too large for response
GET /mse6/send?code=nnn&url=http%3A%2F%2Fwww.google.com
Sends arbitrary response code between 100 and 999. For redirects, you can supply a custom
location parameter. Don't forget to URL encode your params.
GET /mse6/gzip
Sends a gzipped response with proper content encoding
GET /mse6/badgzip
Sends a response gzip content encoding header and garbled binary
Contributions
The mse6 team welcomes all contributors. Everyone interacting with the project's codebase, issue trackers, chat rooms and mailing lists
is expected to follow the code of conduct