There seems to be no way of specifying the Content-Length value for a HEAD request without actually sending also some body information. This limitation comes from the API of the XrdHttpExHandler more precisely SendSimpleReponse/StartSimpleResponse and then propagated to the XrdHttpProtocol corresponding methods. https://github.com/xrootd/xrootd/blob/master/src/XrdHttp/XrdHttpProtocol.cc#L1564 Moreover there is no check to avoid collision between the already provided header info (*header_to_add parameter in the signature of the function above) and the ones which are added by default by this method. The response to a simple HEAD request looks like this: ``` curl -L -v --capath /etc/grid-security/certificates --cert ~/.globus/usercert.pem --cacert ~/.globus/usercert.pem --key ~/.globus/userkey.pem -X HEAD https://esdss000.cern.ch:9000//eos/dev/replica/file2.dat > HEAD //eos/dev/replica/file2.dat HTTP/1.1 > User-Agent: curl/7.29.0 > Host: esdss000.cern.ch:9000 > Accept: */* > < HTTP/1.1 200 OK < Connection: Keep-Alive < Content-Length: 0 < Accept-Ranges: bytes < Content-Disposition: filename="file2.dat" < Content-Type: application/octet-stream < Date: Fri, 19 Jun 2020 11:15:35 GMT < ETag: "24856854790144:74d77c3a" < Last-Modified: Fri, 19 Jun 2020 11:08:31 GMT < * Connection #0 to host esdss000.cern.ch left intact ``` Note the Content-Length value 0 which corresponds to a 0-body response. If I try calling the SendSimpleResponse without a body but with some length then the client hangs due to the `Keep-Alive` header which instructs the client the wait for data that will never come. The `Content-Length` is now properly populated but there is no hook to remove the `Keep-Alive` header. If I try adding the `Content-Length` value to the `header_to_add` parameter, then the response contains two `Content-Length` headers!! -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/1218 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1