Go net/http
Ranked 3 of 11 HTTP client libraries by recommenders
Go's standard library HTTP package, praised as fully featured with an excellent server side. Critics say the client side is clunky, verbose and error-prone, with surprising behaviour changes.
Go's standard library HTTP package, praised as fully featured with an excellent server side. Critics say the client side is clunky, verbose and error-prone, with surprising behaviour changes.
19 people gave an opinion
- recommend it
- 12
- criticize it
- 7
- approval share
- 63%
Recommended in 4 of 13 months
- November 2025: not recommended
- December 2025: not recommended
- January 2026: not recommended
- February 2026: not recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: not recommended
- June 2026: not recommended
- July 2026: not recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 12 people recommend itNeeds 10 or more, met.
- 1.7 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 4 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Fully featured out of the box
“I've never had any issues with it. Go has some of the best http batteries included of any language”
Comment from 25 Mar 2026 in “I Forked Httpx” “because it's so fully featured out of the box”
Comment from 25 Mar 2026 in “I Forked Httpx” Excellent server side
“Go’s server side net/http is excellent, the client side is clunky verbose”
Comment from 25 Mar 2026 in “I Forked Httpx” “The server side is great. Sending a http request is… not”
Comment from 25 Mar 2026 in “I Forked Httpx” Production-grade, broadly liked standard library
“I think having production-grade implementations makes a huge difference also.”
Comment from 21 Aug 2026 in “Malicious Rust Crate Arrayref Runs a Build-Time Payload” “I would have thought everyone is happy we have it”
Comment from 20 Apr 2026 in “Zero-copy protobuf and ConnectRPC for Rust”
What people warn about
Each mark is one comment
Surprising behaviour and breaking changes
“That's a subtle behaviour change.”
Comment from 2 Aug 2026 in “Go 1.27 Interactive Tour” “This is a surprising implementation of "Close" and should be documented somewhere.”
Comment from 14 Oct 2026 in “Better HTTP/1 connection reuse in Go 1.27” “std added new fields to the type in a way that silently breaks existing users”
Comment from 3 Aug 2026 in “Go 1.27 Interactive Tour” - Comment from 2 Aug 2026 in “Go 1.27 Interactive Tour”
Client side clunky and verbose
“Go’s server side net/http is excellent, the client side is clunky verbose”
Comment from 25 Mar 2026 in “I Forked Httpx” “The server side is great. Sending a http request is… not”
Comment from 25 Mar 2026 in “I Forked Httpx” Slow, especially HTTP/2
“It indeed isn't very performant, though one should be careful”
Comment from 7 Mar 2026 in “UUID package coming to Go standard library” “HTTP/2 in Go is significantly slower”
Comment from 15 Oct 2026 in “Better HTTP/1 connection reuse in Go 1.27” Client has footguns, not convenient
“It is not built for convenience.”
Comment from 25 Mar 2026 in “I Forked Httpx” “everyone sane avoids the built-in http client in any production setting because it has rather severe footguns”
Comment from 1 Apr 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan”
Other HTTP client libraries people recommend
The four most recommended other HTTP client libraries, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Requests (Python library) | 23 | 7 | 77% | 8 | — | Approved |
| Axios | 21 | 37 | 36% | 5 | — | — |
| Go net/httpThis page | 12 | 7 | 63% | 4 | — | — |
| libcurl | 10 | 2 | 83% | 7 | — | Approved |
| httpx | 10 | 22 | 31% | 4 | — | — |
What people said
All 21 comments that mention it, newest first. Each links to the original comment.
“HTTP/2 in Go is significantly slower”
“This is a surprising implementation of "Close" and should be documented somewhere.”
“I've almost never had this with Uvicorn or Net/HTTP.”
“This is kinda bad practice.”
“I think having production-grade implementations makes a huge difference also.”
“std added new fields to the type in a way that silently breaks existing users”
“This sounds like a breaking change. Like a go 2.0 thing idk.”
“That's a subtle behaviour change.”
“Go's embedded HTTP server can handle it just fine”
“you had to keep all of the bad initial api design choices going forward”
“I would have thought everyone is happy we have it”
“Then you step into the Go world and it's just the stdlib http package.”
“everyone sane avoids the built-in http client in any production setting because it has rather severe footguns”
“I had the impression that Go's net/http was good, but a lot of people in this thread are complaining about it as well”
“It is not built for convenience.”
“The notable exception is Go, which has a fantastic one.”
“Go’s server side net/http is excellent, the client side is clunky verbose”
“The server side is great. Sending a http request is… not”
“I've never had any issues with it. Go has some of the best http batteries included of any language”
“because it's so fully featured out of the box”
“It indeed isn't very performant, though one should be careful”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.