srv: minimalist alternative to python -m http.server

栏目: IT技术 · 发布时间: 5年前

内容简介:minimalist http(s) server and file browser.i wrote this to substituteyou

srv

minimalist http(s) server and file browser.

i wrote this to substitute python3 -m http.server . here are the differences:

  • shows file size
  • does not follow symlinks
    • by extension, refuses access to all irregular files
  • serves some automatically detected Content-Type mimetypes for browser previews, as opposed to plain octet-stream
  • by default, tells the client to NOT cache responses
  • TLS support
  • is nearly 40x faster (see, mostly in part due to golang and some of my own choices

you could achieve some of these bullet points (e.g. TLS support, response caching) by wrapping python HTTPServer and only using python stdlib, but that hurts from a default usability perspective.

download

cross-platform static executables can be found here .

usage

Simply srv . Defaults are -p 8000 -b 127.0.0.1 -d .

TLS and HTTP/2 are enabled if you pass -c certfile -k keyfile .

self-signed certs:

openssl req -nodes -new -x509 -keyout key.pem -out cert.pem -subj "/"

or better, locally trusted certs with mkcert :

mkcert -install
mkcert -key-file key.pem -cert-file cert.pem -ecdsa 127.0.0.1

benchmarks

Python 3.7.3 python3 -m http.server &>/dev/null

$ ./bench
Running 5s test @ http://127.0.0.1:8000
  8 threads and 8 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    12.52ms    2.82ms  20.32ms   81.22%
    Req/Sec    79.17     41.95     0.91k    99.75%
  3174 requests in 5.10s, 2.56MB read
Requests/sec:    622.41
Transfer/sec:    513.67KB
wrk is done. response code counts:
200     3174

...not to mention the spew of BrokenPipeError: [Errno 32] Broken pipe towards the end.

srv 0.2 (fully static linux-amd64 build, go1.13.5) srv -q

$ ./bench
Running 5s test @ http://127.0.0.1:8000
  8 threads and 8 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   648.80us    1.32ms  18.44ms   93.26%
    Req/Sec     2.96k   489.96     4.82k    72.59%
  119382 requests in 5.10s, 99.62MB read
Requests/sec:  23409.69
Transfer/sec:     19.53MB
wrk is done. response code counts:
200     119382

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

新内容创业:我这样打造爆款IP

新内容创业:我这样打造爆款IP

南立新、曲琳 / 机械工业出版社 / 2016-5-10 / 39.00

这是个内容创业爆棚的时代,在采访几十家内容创业公司,与一线最优秀的创业者独家对话之后,作者写作了这本书,其中包括对这个行业的真诚感触,以及希望沉淀下来的体系化思考。 本书共分三个部分讲述了爆红大号的内容创业模式和方法。其中第一部分,讲述了新的生产方式,即内容形态发展的现状--正在被塑造;第二部分,讲述了新的盈利探索,即从贩卖产品到贩卖内容的转变,该部分以多个案例进行佐证,内容翔实;第三部分,......一起来看看 《新内容创业:我这样打造爆款IP》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具