Quelle est la différence entre CloseableHttpClient et dans Apache HttpClient HttpClient API?

Je suis étudiant une application développée par notre société. Il utilise Apache HttpClient de la bibliothèque. Dans le code source, il utilise le HttpClient classe pour créer des instances pour se connecter à un serveur.

Je veux apprendre Apache HttpClient et je suis allé creux cet ensemble d'exemples. Tous les exemples utilisent CloseableHttpClient au lieu de HttpClient. Donc, je pense que CloseableHttpClient est une version étendue de HttpClient. Si c'est le cas, j'ai deux questions:

  • Quelle est la différence entre ces deux?
  • La classe est recommandé d'utiliser pour mon nouveau développement?
  • La documentation semble assez clair pour moi: "la Base de la mise en œuvre de HttpClient qui implémente également Fermer" - HttpClient est une interface; CloseableHttpClient est une classe abstraite, mais parce qu'il met en œuvre AutoCloseable vous pouvez utiliser dans un try-with-resources déclaration.
  • C'est évident, mais comment est-il important pour fermer HttpClient instances? Si c'est important, pourquoi le close() méthode ne fait pas partie de l'interface de base?
  • J'ai peur de ne pas en savoir assez sur HttpClient pour répondre à ça 🙁