Start here. This is the direct spoken answer to practice first.
Why this question matters
HttpClient lifetime advice sounds contradictory until the client object is separated from the underlying handler and connection pool. That distinction determines whether an API reuses sockets, observes DNS changes, and survives downstream load.
IHttpClientFactory centralizes outbound client configuration and pools underlying message handlers, so creating a factory client for an operation does not create a fresh TCP connection each time. Reusing handlers avoids socket exhaustion, while handler rotation lets new clients eventually observe DNS changes. Named or typed clients also keep base addresses, headers, logging, and resilience policies in one place. The factory does not make unlimited parallel requests safe or decide the correct timeout and retry policy for the dependency.