Http-server
Contents
HTTP Server over TCP/ICN
This is an implementation of a HTTP server able to serve client requests using both TCP and ICN as transport protocol.
This project is a fork from the http server implemented by Ole Christian Eidheim and open sourced at https://github.com/eidheim/Simple-Web-Server.
In the ICN flavour, so far, we support just the GET method. Later we'll be implementing the remaining methods as well.
Dependencies
- libboost-regex-dev
- libboost-system-dev
- libboost-filesystem-dev
- libicnet
Install the HTTP-Server
Installation from binary packages
Ubuntu 14.04 and Ubuntu 16.04
$ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.$(lsb_release -sc).main/ ./" \ | sudo tee -a /etc/apt/sources.list.d/99fd.io.list $ sudo apt-get update $ sudo apt-get install http-server
Centos 7
$ cat << EOF | sudo tee -a /etc/yum.repos.d/99fd.io.repo [fdio-cicn-master] name=fd.io master branch latest merge baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/ enabled=1 gpgcheck=0 EOF $ sudo yum install http-server
Installation from source code
For installing the application:
$ mkdir build && cd build $ cmake .. $ make $ sudo make install
Usage
For starting the http-server, from the build folder:
$ cd build $ ./http-server
The server now is: - serving files from the folder /var/www/html - Listening on the icn name /webserver - Listening on the TCP port 8080
For retrieving a content through icn, the name must have the following format:
iget http://webserver/get/file.mp4
The server accept two option through the command line:
$ ./http-server -h http-server [-p PATH_TO_ROOT_FOOT_FOLDER] [-l WEBSERVER_PREFIX]
The default values are /var/www/html for the root folder and ccnx:/webserver for the icn name.
Platforms
Libicnet has been tested in:
- Ubuntu 16.04 (x86_64) - Debian Testing - MacOSX 10.12
(END)