I am using Apache Http Client to communicate with Elastic. I understand that REST low level Client internally uses Http Client. I am curious to know what is the difference between using Apache Http Client and REST low level Client. Is there any difference with respect to Thread safety or any other aspect? What are the other benefits that REST low level Client provides over Apache Http Client and what are its disadvantages?