Returning by constant reference can lead to unexpected results, consider the following example:
```c++
HttpRequest request(GET, URL);
const header_t &headers = request.getHeaders();
request.addHeader("Content-Type", "text/plain");
// headers changed its state at this point.  Did you expect that?
```