It is a fact of modern webservers, often overlooked, that if you request
the webserver will tell you to try
instead.*
This is a very minor, but very important distinction, to the webserver. It's often overlooked, because modern web browsers handle it gracefully, just going to the new address and updating the address bar without bothering you about the change.
There's basically three "good" responses a webserver can make to a vanilla request from a browser:
- "It's over there, now". This is a normal redirect message, telling you that the resource is actually at a different address entirely.
- "It's over here, now". This is similar, but says that the resource is right here, but the address is slightly different. This is the trailing "/" issue I'm talking about.
- "I've got it for you right here". This is the default "OK" message, when your address matches the address of the resource, and it's there for you.
Your web browser will turn all three of these messages into the same experience for you, the user: The requested resource just loads, from the correct address.
However. Your java package build tool, gradle,
will not handle these messages gracefully. If gradle asks for:
And the server replies:
Code:
302 FOUND http://server/folder/
Then gradle will give up, and your job run will fail. This is super obnoxious, because nobody knows that the "/" actually matters, and so even technically proficient software developers don't think to check it.
The people who developed the gradle tool are jackasses, for not thinking to gracefully handle such standard server responses as "HTTP 302 FOUND".
---
*This isn't true about all webservers. It actually depends on how the site is designed, and on how the webserver is configured to handle these kinds of minor address mismatches. But it's true for a lot more webservers than you probably think.