My understanding of the specification is that the response from a HEAD request should be (nearly) identical to a GET request with the main exception is that there is no body returned on a HEAD request. Other than that, the status code should be the same and the headers should be the same.
RepositoryEntityController#headCollectionResource returns a 204 when the GET response would return a 200. It is also missing headers for Content-Type and Transfer-Encoding. If the resource is not found, it correctly returns a 404.
RepositoryEntityController#headForItemResource returns a 204 when the GET response would return a 200 OK. In the case of using ETag value to set the request header If-None-Match or similar, if the GET request were to return a 304 Not Modified, the HEAD version of the same request still returns a 204 No Content. It's also adding a Cache-Control header where as the GET request does not.
I haven't checked other endpoints.
My understanding of the specification is that the response from a
HEADrequest should be (nearly) identical to aGETrequest with the main exception is that there is no body returned on aHEADrequest. Other than that, the status code should be the same and the headers should be the same.RepositoryEntityController#headCollectionResourcereturns a 204 when theGETresponse would return a 200. It is also missing headers forContent-TypeandTransfer-Encoding. If the resource is not found, it correctly returns a404.RepositoryEntityController#headForItemResourcereturns a204when theGETresponse would return a200 OK. In the case of usingETagvalue to set the request headerIf-None-Matchor similar, if theGETrequest were to return a304 Not Modified, theHEADversion of the same request still returns a204 No Content. It's also adding aCache-Controlheader where as theGETrequest does not.I haven't checked other endpoints.