瀏覽代碼

httpd: add support for route undefined HEAD requests to GET handlers

HEAD responses will not include a body but the Content-Length will be
set as the equivalent GET request

Fixes #255
Nicola Murino 4 年之前
父節點
當前提交
743b350fdd
共有 2 個文件被更改,包括 3 次插入4 次删除
  1. 2 4
      httpd/router.go
  2. 1 0
      telemetry/router.go

+ 2 - 4
httpd/router.go

@@ -22,6 +22,8 @@ func GetHTTPRouter() http.Handler {
 func initializeRouter(staticFilesPath string, enableWebAdmin bool) {
 	router = chi.NewRouter()
 
+	router.Use(middleware.GetHead)
+
 	router.Group(func(r chi.Router) {
 		r.Get("/healthz", func(w http.ResponseWriter, r *http.Request) {
 			render.PlainText(w, r, "ok")
@@ -38,10 +40,6 @@ func initializeRouter(staticFilesPath string, enableWebAdmin bool) {
 			sendAPIResponse(w, r, nil, "Not Found", http.StatusNotFound)
 		}))
 
-		router.MethodNotAllowed(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-			sendAPIResponse(w, r, nil, "Method not allowed", http.StatusMethodNotAllowed)
-		}))
-
 		router.Get("/", func(w http.ResponseWriter, r *http.Request) {
 			http.Redirect(w, r, webUsersPath, http.StatusMovedPermanently)
 		})

+ 1 - 0
telemetry/router.go

@@ -15,6 +15,7 @@ import (
 func initializeRouter(enableProfiler bool) {
 	router = chi.NewRouter()
 
+	router.Use(middleware.GetHead)
 	router.Use(middleware.Recoverer)
 
 	router.Group(func(r chi.Router) {