Skip to content

Simple HTTP Server which implements partial HTTP 1.1

License

Notifications You must be signed in to change notification settings

GideonZ/MicroHttpServer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micro HTTP Server

About this fork

This once was the basis for the HTTP Daemon for the Ultimate related projects. However, it quickly showed that it was buggy and not capable of serving files that were larger than the pre-allocated response buffer. This version has been greatly improved. Bugs have been fixed. In addition, it can now serve larger files and also has gotten support for parsing multipart mime posts in a streaming way. Is it still really simple? Probably not. It still runs on a micro controller, though.

The route mechanism has been replaced by a RESTful API parser, as designed by Johan Smolinski.

Original text follows

It is a really simple HTTP server for prototyping.

One of the major purpose is that it can be ported on an embedded system (including micro controller unit level).

For writing Micro HTTP Server, the developer has studied eserv and Tiny HTTPd.

Demo

Get the code git clone https://github.com/starnight/MicroHttpServer.git.

Python Version

It will need Python 3.2 or above.

cd py-version
python3 main.py

Open your web browser and access the URL: http://localhost:8000

C Version

It will need make and GCC for building.

cd c-version
make
./microhttpserver

Open your web browser and access the URL: http://localhost:8001

Directories and Files

  • autotest/: Place the scripts or programs for test automation.
    • client.py: The test automation program writen in Python3 tests the Micro HTTP Server.
  • py-version/: Place the Python Version Micro HTTP Server.
    • main.py: The entry point of Python Version Micro HTTP Server example.
    • app.py: The web application of Python Version Micro HTTP Server example.
    • lib/: Place the Python Version Micro HTTP Server core library.
      • server.py: The Python Version Micro HTTP Server.
      • middleware.py: The Python Version Micro HTTP Server middleware.
      • __init__.py: Needed when server.py and middleware.py are imported by other Python programs located in other directories.
    • static/: Place the static files: HTML, JS, Images ... , which could be access directly.
  • c-version/: Place the C Version Micro HTTP Server.
    • main.c: The entry point of C Version Micro HTTP Server example.
    • app.h: The web application header file of C Version Micro HTTP Server example.
    • app.c: The web application source file of C Version Micro HTTP Server example.
    • lib/: Place the C Version Micro HTTP Server core library.
      • server.h: The header file of C Version Micro HTTP Server.
      • server.c: The source file of C Version Micro HTTP Server.
      • middleware.h: The header file of C Version Micro HTTP Server middleware.
      • middleware.c: The source file of C Version Micro HTTP Server middleware.
    • static/: Place the static files: HTML, JS, Images ... , which could be access directly.
    • Makefile: The makefile of this C Version Micro HTTP Server example.
  • FreeRTOS/: Place the example of Micro HTTP Server ported on FreeRTOS.
  • .travis.yml: The continuous integration build script for Travis CI.
  • LICENSE.md: The BSD license file.
  • README.md: This read me file.

Reference

License

Micro HTTP Server's code uses the BSD license, see our LICENSE.md file.

About

Simple HTTP Server which implements partial HTTP 1.1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 87.9%
  • Python 5.4%
  • C++ 4.8%
  • Makefile 1.7%
  • HTML 0.2%