whoami
Tiny Go webserver that prints os information and HTTP request to output
Usage
Paths
/data?size=n
: creates a response with a sizen
./echo
: webSocket echo./bench
: always return the same response (1
)./
: returns the whoami information (request and network information)./api
: returns the whoami information as JSON./health
: heath checkGET
,HEAD
, ...: returns a response with the status code defined by thePOST
POST
: changes the status code of theGET
(HEAD
, ...) response.
Flags
cert
: give me a certificate.key
: give me a key.port
: give me a port number. (default: 80)
Examples
$ docker run -d -P --name iamfoo containous/whoami
$ docker inspect --format '{{ .NetworkSettings.Ports }}' iamfoo
map[80/tcp:[{0.0.0.0 32769}]]
$ curl "http://0.0.0.0:32769"
Hostname : 6e0030e67d6a
IP : 127.0.0.1
IP : ::1
IP : 172.17.0.27
IP : fe80::42:acff:fe11:1b
GET / HTTP/1.1
Host: 0.0.0.0:32769
User-Agent: curl/7.35.0
Accept: */*
# updates health check status
$ curl -X POST -d '500' http://localhost:80/health
# calls the health check
$ curl -v http://localhost:80/health
* Trying ::1:80...
* TCP_NODELAY set
* Connected to localhost (::1) port 80 (#0)
> GET /health HTTP/1.1
> Host: localhost:80
> User-Agent: curl/7.65.3
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Date: Mon, 16 Sep 2019 22:52:40 GMT
< Content-Length: 0