Consider the following snippet:
URLConnection connection = target.openConnection();
connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(1
It is for "starting" read data. The timeout is there to set a limit on how long the wait is for incoming data. The timeout doesn't apply when there is data available for reading.
"If the timeout expires before there is data available for read, a java.net.SocketTimeoutException
is raised."
Oracle Reference
In short - your understanding is correct.