Inspirasi dari beriw: https://github.com/PT-Archana-Berry-Developer-Indonesia/archanaberry-expresspp
Implementasi sederhana dari HTTP server menggunakan C++ untuk menangani permintaan HTTP dasar dan routing menggunakan thread dan soket.
HTTP Server ini dirancang untuk mendengarkan permintaan HTTP pada port tertentu, menangani rute yang ditentukan pengguna, dan memberikan respons sesuai dengan handler yang terdaftar.
Sebelum menggunakan server ini, pastikan Anda memiliki hal berikut:
iostream
, sstream
, regex
, sys/socket.h
, arpa/inet.h
, unistd.h
, thread
, vector
, mutex
)Clone repositori ini ke mesin lokal Anda:
git clone https://github.com/mancode77/simple-http-server.git
cd http-server-cpp
Anda dapat menambahkan rute kustom dan fungsi handler ke server. Edit file main.cpp
untuk menambahkan rute baru dan mendefinisikan handler yang sesuai.
Contoh menambahkan rute /hello
dengan handler helloHandler
:
#include "http_server.h"
#include <iostream>
void helloHandler(const std::map<std::string, std::string>& params, std::string& response) {
response = "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n";
response += "{ \"message\": \"Hello, World!\" }";
}
int main() {
HTTPServer server;
// Tambahkan rute dan handler
server.addRoute("/hello", helloHandler);
// Mulai server pada port 8080
server.start(8080);
return 0;
}
Kompilasi server menggunakan compiler C++:
# Untuk Linux dan Mac
chmod +x script.sh
./run_linux_or_mac.sh
#Untuk Windows
runner_windows.bat
Secara default, server akan mendengarkan pada port 8080. Anda dapat mengubah port di dalam fungsi main
pada file sumber Anda.
Buka browser web atau gunakan curl
untuk mengakses server:
curl http://localhost:8080/hello
Ini akan mengirimkan permintaan GET ke endpoint /hello
pada server.
Kontribusi dipersilakan! Jika Anda menemukan masalah atau memiliki saran untuk perbaikan, silakan buka isu atau kirimkan pull request.
Proyek ini dilisensikan di bawah Lisensi MIT.
Dokumentasi ini sekarang lebih terstruktur dan membantu pengguna untuk memahami langkah-langkah instalasi, penggunaan, serta cara menambahkan rute dan handler baru ke server HTTP berbasis C++ ini. Pastikan untuk mengganti bagian yang sesuai dengan detail proyek Anda sendiri sebelum menggunakan atau mendistribusikan.