mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 13:28:11 +00:00
WebServer: Implement a very basic HTTP server :^)
This server listens on port 8000 and serves HTML files from /www. It's very simple and quite naive, but I think we can start here and build our way to something pretty neat. Work towards #792.
This commit is contained in:
parent
271bc4b2f2
commit
6c752c15a2
8 changed files with 198 additions and 1 deletions
28
Servers/WebServer/Client.h
Normal file
28
Servers/WebServer/Client.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
#include <LibCore/Object.h>
|
||||
#include <LibCore/TCPSocket.h>
|
||||
|
||||
namespace Core {
|
||||
class HttpRequest;
|
||||
}
|
||||
|
||||
namespace WebServer {
|
||||
|
||||
class Client final : public Core::Object {
|
||||
C_OBJECT(Client);
|
||||
public:
|
||||
void start();
|
||||
|
||||
private:
|
||||
Client(NonnullRefPtr<Core::TCPSocket>, Core::Object* parent);
|
||||
|
||||
void handle_request(ByteBuffer);
|
||||
void send_error_response(unsigned code, const StringView& message, const Core::HttpRequest&);
|
||||
void die();
|
||||
void log_response(unsigned code, const Core::HttpRequest&);
|
||||
|
||||
NonnullRefPtr<Core::TCPSocket> m_socket;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue