NanoHttpd 2.0.5 發布,輕量級的(只有一個Java文件) HTTP服務器
NanoHTTPD是專為嵌入在其他Java應用程序中使用的一個輕量級HTTP服務器,它只有一個Java文件。支持 GET, POST, PUT, HEAD 和 DELETE 請求,支持文件上傳,占用內存很小。可輕松定制臨時文件使用和線程模型。
用法:
public class DebugServer extends NanoHTTPD { /** * Constructs an HTTP server on given port. */ public DebugServer() { super(8080); } @Override public Response serve(String uri, Method method, Map<String, String> header, Map<String, String> parms, Map<String, String> files) { StringBuilder sb = new StringBuilder(); sb.append("<html>"); sb.append("<head><title>Debug Server</title></head>"); sb.append("<body>"); sb.append("<h1>Response</h1>"); sb.append("<p><blockquote><b>URI -</b> ").append(uri).append("<br />"); sb.append("<b>Method -</b> ").append(method).append("</blockquote></p>"); sb.append("<h3>Headers</h3><p><blockquote>").append(header).append("</blockquote></p>"); sb.append("<h3>Parms</h3><p><blockquote>").append(parms).append("</blockquote></p>"); sb.append("<h3>Files</h3><p><blockquote>").append(files).append("</blockquote></p>"); sb.append("</body>"); sb.append("</html>"); return new Response(sb.toString()); } public static void main(String[] args) { ServerRunner.run(DebugServer.class); } }
Core Features
- Only one Java file, providing HTTP 1.1 support.
- 2 "flavors" - one at "current" standards and one strictly Java 1.1 compatible.
- Released as open source, free software, under a Modified BSD licence.
- No fixed config files, logging, authorization etc. (Implement by yourself if you need them.)
- Experimental support for SSL (see the 'ssl-support' branch in git)
- Basic support for cookies
- Supports parameter parsing of GET and POST methods.
- Rudimentary PUT support (added in 1.25).
- Support for HEAD and DELETE requests.
- Supports single and multi-value parameters (w/ a helper method) if needed.
- Supports file upload (since version 1.2, 2010) with minimal memory overhead.
- Never caches anything.
- Doesn't limit bandwidth, request time or simultaneous connections.
- All header names are converted lowercase so they don't vary between browsers/clients.
- Very low memory overhead when processing even the largest of requests.
- Temp file usage and threading model are easily cutomized.
- Persistent connections (Connection "keep-alive") support allowing multiple requests to be served over a single socket connection.
Webserver Features
- Supports both dynamic content and file serving.
- Default code serves files and shows all HTTP parameters and headers.
- File server supports directory listing,
index.html
andindex.htm
. - File server supports partial content (streaming).
- File server supports ETags.
- File server does the 301 redirection trick for directories without
/
. - File server supports simple skipping for files (continue download).
- File server serves also very long files without memory overhead.
- Contains a built-in list of most common mime types.
- Runtime extension support (extensions that serve particular mime types) - example extension that serves Markdown formatted files. Simply including an extension JAR in the webserver classpath is enough for the extension to be loaded.
項目地址:https://github.com/NanoHttpd/nanohttpd
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!