Go HTTP Client

Go HTTP client is an HTTP(s) client implemented in Golang. It can be used to make HTTP(s) requests from a Golang program.

By default, i.e. when it hasn't been modified by the developer, its user-agent looks as follows: go-http-client/1.1

The 1.1 at the end of the user agent refers to the version of the library and may evolve over time.

Is Go HTTP client linked to Google (bot)?

No, contrary to what's discussed on certain forums, Go HTTP client has NO links with Google bot. This is a library that can be used by anyone to make HTTP(s) requests, including to make bots.

How to block bots that are based on the Go HTTP client?

First, you can block all requests whose user-agent HTTP header contains the go-http-client substring. However, you should keep in mind that attackers can change their user agent to appear more human, e.g. by selecting the user agent of the latest Chrome on Windows. In this case, you may want to use other bot detection techniques, such as:

You can learn more about the basics of bot detection in this article.

Moreover, since bots based on the Go HTTP client can't execute JavaScript code natively, you can also use a JS-based proof of work to stop them (or any other kinds of bots that do not execute JS).