{"id":64,"date":"2014-08-24T15:24:04","date_gmt":"2014-08-24T13:24:04","guid":{"rendered":"http:\/\/andreberger.eu\/?p=64"},"modified":"2015-07-24T12:42:35","modified_gmt":"2015-07-24T10:42:35","slug":"micro-httpd","status":"publish","type":"post","link":"https:\/\/andreberger.eu\/?p=64","title":{"rendered":"micro-httpd"},"content":{"rendered":"<p>Really small HTTP server (org.dyndns.hvkls.microhttpd) \/\/<em>\u00a0configuration<\/em><\/p>\n<p><!--more--><\/p>\n<p>micro_httpd is a very small Unix-based HTTP server. It runs from inetd, which\u00a0means its performance is poor. But for low-traffic sites, it&#8217;s quite adequate.\u00a0It implements all the basic features of an HTTP server, including:<\/p>\n<ul>\n<li>Security against &#8220;..&#8221; filename snooping<\/li>\n<li>The common MIME types<\/li>\n<li>Trailing-slash redirection<\/li>\n<li><em>index.html<\/em><\/li>\n<li>Directory listings<\/li>\n<\/ul>\n<p>All in about 200 lines of code.<\/p>\n<p>micro_httpd can also be used to serve HTTPS by wrapping it with stunnel.<\/p>\n<ul>\n<li><a href=\"http:\/\/www.acme.com\/software\/micro_httpd\/\" target=\"_blank\">http:\/\/www.acme.com\/software\/micro_httpd\/<\/a><\/li>\n<\/ul>\n<p>Usage<\/p>\n<p>The server comes preconfigured to serve the contents of your home directory (<em>\/var\/mobile\/<\/em>), which you can change in <em>\/Library\/LaunchDaemons\/org.dyndns.hvkls.microhttpd<\/em>.\u00a0It&#8217;s protected from the outside world, so your files are only visible from your phone (<a title=\"tcpd\" href=\"http:\/\/andreberger.eu\/?p=91\">TCP wrappers<\/a>).The server starts on demand, and uses virtually no resources (<a title=\"xinetd\" href=\"http:\/\/andreberger.eu\/?p=109\">xinetd<\/a>).\u00a0It facilitates, for example, the reading of PDF documents and eBooks with MobileSafari. Just point your browser to <a href=\"http:\/\/localhost\/\" target=\"_blank\">http:\/\/localhost\/<\/a>.<\/p>\n<p><span style=\"color: #000000; font-family: sans-serif; font-size: medium;\">Version History<\/span><\/p>\n<ul>\n<li>20051212-5 Debian archive contents corrected<\/li>\n<li>20051212-4\u00a0Added dependency\u00a0to org.dyndns.hvkls.repository<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Really small HTTP server (org.dyndns.hvkls.microhttpd) \/\/\u00a0configuration<\/p>\n","protected":false},"author":2,"featured_media":339,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,4],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-configuration","category-hvkls-ios-repository","excerpt","zoom","full-without-featured","even","excerpt-0"],"publishpress_future_action":{"enabled":false,"date":"2026-05-20 15:27:51","action":"change-status","newStatus":"private","terms":[],"taxonomy":"category","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/andreberger.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=64"}],"version-history":[{"count":9,"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":328,"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions\/328"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/andreberger.eu\/index.php?rest_route=\/wp\/v2\/media\/339"}],"wp:attachment":[{"href":"https:\/\/andreberger.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andreberger.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andreberger.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}