{"action":"opened","issue":{"url":"https://api.github.com/repos/golang/go/issues/13639","labels_url":"https://api.github.com/repos/golang/go/issues/13639/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/13639/comments","events_url":"https://api.github.com/repos/golang/go/issues/13639/events","html_url":"https://github.com/golang/go/issues/13639","id":122469790,"number":13639,"title":"net/http: ServeMux also eliminates repeating \"/\"","user":{"login":"egonelbre","id":192964,"avatar_url":"https://avatars.githubusercontent.com/u/192964?v=3","gravatar_id":"","url":"https://api.github.com/users/egonelbre","html_url":"https://github.com/egonelbre","followers_url":"https://api.github.com/users/egonelbre/followers","following_url":"https://api.github.com/users/egonelbre/following{/other_user}","gists_url":"https://api.github.com/users/egonelbre/gists{/gist_id}","starred_url":"https://api.github.com/users/egonelbre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/egonelbre/subscriptions","organizations_url":"https://api.github.com/users/egonelbre/orgs","repos_url":"https://api.github.com/users/egonelbre/repos","events_url":"https://api.github.com/users/egonelbre/events{/privacy}","received_events_url":"https://api.github.com/users/egonelbre/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-16T10:11:08Z","updated_at":"2015-12-16T10:11:08Z","closed_at":null,"body":"Just a documentation issue that - `http.ServeMux` (cleanPath) gets also rid of duplicate `/`-s. `http.ServeMux` already contains:\r\n\r\n> ServeMux also takes care of sanitizing the URL request path, redirecting any request containing . or .. elements to an equivalent .- and ..-free URL.\r\n\r\nI'm not sure how to reword it nicely to include the case of empty path segments, hence I didn't make a CL. Here's shortest example:\r\n```\r\npackage main\r\nimport (\"fmt\"; \"net/http\")\r\nfunc main() {\r\n\thttp.HandleFunc(\"/\", func(w http.ResponseWriter, r *http.Request) {\r\n\t\tfmt.Fprintf(w, \"%s\", r.URL.Path)\r\n\t})\r\n\thttp.ListenAndServe(\":8001\", nil)\r\n}\r\n```\r\n\r\n`/hello////world` will redirect to `/hello/world`. From URI standpoint they are different and both valid (https://tools.ietf.org/html/rfc3986#section-3.3)."}}