]>
Commit | Line | Data |
---|---|---|
c680a8e1 RS |
1 | // Package cleanhttp offers convenience utilities for acquiring "clean" |
2 | // http.Transport and http.Client structs. | |
3 | // | |
4 | // Values set on http.DefaultClient and http.DefaultTransport affect all | |
5 | // callers. This can have detrimental effects, esepcially in TLS contexts, | |
6 | // where client or root certificates set to talk to multiple endpoints can end | |
7 | // up displacing each other, leading to hard-to-debug issues. This package | |
8 | // provides non-shared http.Client and http.Transport structs to ensure that | |
9 | // the configuration will not be overwritten by other parts of the application | |
10 | // or dependencies. | |
11 | // | |
12 | // The DefaultClient and DefaultTransport functions disable idle connections | |
13 | // and keepalives. Without ensuring that idle connections are closed before | |
14 | // garbage collection, short-term clients/transports can leak file descriptors, | |
15 | // eventually leading to "too many open files" errors. If you will be | |
16 | // connecting to the same hosts repeatedly from the same client, you can use | |
17 | // DefaultPooledClient to receive a client that has connection pooling | |
18 | // semantics similar to http.DefaultClient. | |
19 | // | |
20 | package cleanhttp |