В разделе 2.5. Connection eviction policy документации управления подключением выполните c для httpclient, где упоминается, что
2.5. Connection eviction policy
HttpClient пытается устранить проблему, проверяя, устарело ли соединение ', это больше не является допустимым, поскольку оно было закрыто на стороне сервера до использования соединения для выполнения HTTP-запроса. Проверка устаревшего соединения не на 100% надежна.
Мне просто интересно, почему устаревшее соединение нельзя надежно проверить? Какая логическая / TCP-конструкция не позволяет этому произойти надежно?
Это тривиально. Между успешной проверкой ставки и выполнением запроса всегда есть промежуток времени, в котором противоположная конечная точка может закрыть соединение на своем конце и сделать соединение устаревшим на стороне клиента.