Also note that []byte is mutable type in Go, and it get sent by reference. So if you want to ensure that variable will be immutable, you need to use "copy on write":
```go
var new_req []byte 
copy(new_req, req)
```

However in our case i don't see places when request data is changed, from what i see it only parsed. So we can avoid this trick, at least now.