implemented HTTP 1.0/1.1 server

This commit is contained in:
Altair-sh
2026-11-01 20:43:08 +01:00
parent 2de1f038c7
commit e0cf8a12a9
13 changed files with 956 additions and 68 deletions
+38
View File
@@ -0,0 +1,38 @@
package http
import (
"bufio"
"net"
sh "serveg/internal/string_helper"
"strings"
)
const maxHeaderBytes = 16 * 1024
const initialWriteBufCap = 512
type mapStrStr map[string]string
type HeadersMap map[string]string
type Connection struct {
socket *net.TCPConn
r *bufio.Reader
wbuf sh.StringBuilder
}
func NewConnection(socket *net.TCPConn) *Connection {
return &Connection{
socket: socket,
r: bufio.NewReaderSize(socket, maxHeaderBytes),
wbuf: sh.StringBuilder{Buf: make([]byte, 0, initialWriteBufCap)},
}
}
func HeaderValueContains(sourceSplit []string, target string) bool {
for _, v := range sourceSplit {
v = strings.TrimSpace(v)
if strings.EqualFold(v, target) {
return true
}
}
return false
}