Its very related to the issue
QTBUG-22177, which was resolved years ago.
We setup a proxy server and the default behaviour of that server is to disconnect the connection when required authentication on HTTP/1.1.
The header that Proxy returned is:
QT's QNetworkAccessManager reconnect to Proxy and send the authentication to Proxy.
The signal proxyAuthenticationRequired never emitted and QNetworkAccessManager never reconnect to the Proxy.
What I found from QT 5.13.0 's source code:
It seems already being refactored after this fix: https://codereview.qt-project.org/c/qt/qtbase/+/7484
The original one use the toLower to ignore the case:
But the latest code (from QT 5.13.0) made some mistake (I guess):
Attached Debug Info
I've saw the HTTP RFC spec and it defined:
But why Qt use Qt::CaseSensitive only for the close header then use Qt::CaseInsensitive for the keep-alive one? I guess both of them should use Qt::CaseInsensitive to enlarge the compatibility of such non-standard proxies, thus the upper case "Close" header from our Proxy server could be handled properly.