misc updates to server code; improve Cache-Control settings
This commit is contained in:
@ -29,4 +29,4 @@
|
||||
(with [f (open path "rb")]
|
||||
(setv data (.read f)))
|
||||
|
||||
(return #({"Content-Type" mime-type "Cache-Control" "max-age=0, stale-while-revalidate=31536000"} data)))
|
||||
(return #({"Content-Type" mime-type "Cache-Control" "max-age=300, stale-while-revalidate=3600"} data)))
|
||||
|
@ -19,8 +19,8 @@
|
||||
(setv [http-method route http-version] (.split (.decode request-line "utf-8") " "))
|
||||
|
||||
(doto request
|
||||
(assoc :method http-method)
|
||||
(assoc :route (let
|
||||
(assoc "method" http-method)
|
||||
(assoc "route" (let
|
||||
[[_ _ path query _] (urlsplit route)]
|
||||
(dict
|
||||
:path (.join "/"
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
:parameters (parse-url-encoded query))))
|
||||
|
||||
(assoc :version http-version)
|
||||
(assoc :headers (dict
|
||||
(assoc "version" http-version)
|
||||
(assoc "headers" (dict
|
||||
(dfor header
|
||||
(map (fn [x]
|
||||
(.split (.decode x "utf-8") ": ")) headers)
|
||||
@ -44,7 +44,7 @@
|
||||
(get header 1))))
|
||||
|
||||
|
||||
(assoc :body (branch (in it (. request (get "headers") (get "Content-Type" "")))
|
||||
(assoc "body" (branch (in it (. request (get "headers") (get "Content-Type" "")))
|
||||
"application/x-www-form-urlencoded" (parse-url-encoded (.decode (.join b"\n" body) "utf-8"))
|
||||
"" ""
|
||||
;;"multipart/form-data" ;(do
|
||||
|
18
srv/main.hy
18
srv/main.hy
@ -16,11 +16,11 @@
|
||||
(.bind socket #(ADDRESS PORT))
|
||||
(.listen socket 10)
|
||||
(.debug log "socket bound")
|
||||
|
||||
|
||||
(while True
|
||||
(try
|
||||
(.start
|
||||
(Thread
|
||||
(try
|
||||
(.start
|
||||
(Thread
|
||||
:target (fn [client-socket address]
|
||||
(try
|
||||
(setv request-data (bytes))
|
||||
@ -28,7 +28,7 @@
|
||||
(+= request-data data)
|
||||
(when (< (len data) 1024)
|
||||
(break)))
|
||||
|
||||
|
||||
(setv parsed-request (http.request.parse-data request-data))
|
||||
(.debug log parsed-request)
|
||||
(.info log (+ (str (cond
|
||||
@ -37,19 +37,19 @@
|
||||
|
||||
(setv response (match-request parsed-request))
|
||||
(.sendall client-socket (http.response.send #** response))
|
||||
|
||||
|
||||
(except [e Exception]
|
||||
(.warn log (format-exc))
|
||||
(.close client-socket))))
|
||||
|
||||
:args #(#* (socket.accept))))
|
||||
|
||||
|
||||
(except [e Exception]
|
||||
(.warn log (format-exc)))))
|
||||
|
||||
|
||||
(except [e Exception]
|
||||
(.critical log (format-exc)))
|
||||
|
||||
|
||||
(finally
|
||||
(.close socket)
|
||||
(.info log "server shut down")))))
|
||||
|
Reference in New Issue
Block a user