Note: Msf::Exploit::Remote::Tcp mixin is preferred because even if you use send_request_raw(), there are still headers you don't fully control (ie: content-length & user-agent) as these are automatically added by the API. According to author, the issue/concern is they mess with the stack, so it's easier to not use the mixin.

I personally don't mind either way, even though using the Tcp mixin loses all the features you have in HttpClient.