
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
abhttpserver
Advanced tools
This abstract class can be instantiated to create a simple and easy to use HTTP server. It serves HTTP and HTTPS requests concurrently on separate TCP/IP ports.
npm install abhttpserver
Simple HelloWorld example:
This example starts an HTTP server on port 8080 which responds every client request with "Hello world!".
import { ABHttpServer, ABRequest} from './ABHttpServer'
import { ServerResponse } from 'http';
class MyServer extends ABHttpServer {
get(request: ABRequest, response: ServerResponse) {
this.sendText(response, `Hello world!`)
}
}
var myServer = new MyServer(8080)
Example test.ts:
This example starts two servers (HTTP:8080 and HTTPS:8081). All requests from both servers are handled thru the same class methods.
import { ABHttpServer, ABRequest} from './ABHttpServer'
import { ServerResponse } from 'http';
class MyServer extends ABHttpServer {
get(request: ABRequest, response: ServerResponse) {
if (request.url.path == 'stats') {
this.sendJSON(response, this.getStatistics())
} else {
this.sendText(response, `The URL sent was ${request.url.path}`)
}
}
post(request: ABRequest, response: ServerResponse) {
this.sendJSON(response, { data: `The raw data sent was ${request.http.data}` })
}
}
var myServer = new MyServer(8080, 8081)
Detailed debugging to the console is supported by setting the environment variable AB_DEBUG to true. The debugging data includes most of the HTTP/HTTPS server events and may result in a lot of data sent to the console.
AB_DEBUG=true node test.js
Example debug output:
2018-11-13T13:19:03.151Z ABHttpServer: Object constructor called (8080, 8081)
2018-11-13T13:19:03.161Z ABHttpServer: Creating HTTP server on port 8080
2018-11-13T13:19:03.165Z ABHttpServer: Creating HTTPS server on port 8081
2018-11-13T13:19:03.175Z ABHttpServer: HTTP server is listening
2018-11-13T13:19:03.175Z ABHttpServer: HTTP server started on port 8080
2018-11-13T13:19:03.175Z ABHttpServer: HTTPS server is listening
2018-11-13T13:19:03.175Z ABHttpServer: HTTPS server started on port 8081
2018-11-13T13:19:18.987Z ABHttpServer: HTTP client connected
2018-11-13T13:19:18.990Z ABHttpServer: HTTP client request received
2018-11-13T13:19:18.991Z ABHttpServer: <= HTTP/1.1 (Non-TLS) - Method GET - URL /hello - Content-Length 12
2018-11-13T13:19:18.991Z ABHttpServer: => HTTP Status 200 - Content-Length 22 - Content-Type text/plain
2018-11-13T13:19:23.996Z ABHttpServer: HTTP server is idle
2018-11-13T13:19:28.834Z ABHttpServer: HTTP client request received
2018-11-13T13:19:28.835Z ABHttpServer: <= HTTP/1.1 (Non-TLS) - Method POST - URL /helloagain - Content-Length 12
2018-11-13T13:19:28.835Z ABHttpServer: => HTTP Status 200 - Content-Length 45 - Content-Type application/json
2018-11-13T13:19:33.839Z ABHttpServer: HTTP server is idle
2018-11-13T13:19:59.899Z ABHttpServer: HTTPS client connected
2018-11-13T13:19:59.908Z ABHttpServer: HTTPS completed TLS handshaking
2018-11-13T13:19:59.910Z ABHttpServer: HTTPS client request received
2018-11-13T13:19:59.910Z ABHttpServer: <= HTTP/1.1 (TLSv1.2) - Method GET - URL /stats - Content-Length 12
2018-11-13T13:19:59.911Z ABHttpServer: => HTTP Status 200 - Content-Length 505 - Content-Type application/json
See unlicense.org
This software shall be used for Good, not Evil.
You will find the source code on GitHub
Support is provided on a best efford base. If you have any question, suggestion or find any issues, please report them. You may also contact the original author thru email at the address andy.brunner@abdata.ch.
FAQs
Simple HTTP Server Framework
The npm package abhttpserver receives a total of 10 weekly downloads. As such, abhttpserver popularity was classified as not popular.
We found that abhttpserver demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.