public function setHeader(string $field, string $value) : Response
{
if ($this->state & self::STARTED) {
throw new \LogicException("Cannot set header; output already started");
}
assert($this->isValidHeaderField($field), "Invalid header field: {$field}");
assert($this->isValidHeaderValue($value), "Invalid header value: {$value}");
$this->headers[strtolower($field)] = [$value];
return $this;
}