Yeah thought about theses specific values. Since `CONTENT_TYPE` seems to be the [correct naming](http://www.ietf.org/rfc/rfc3875) over `HTTP_CONTENT_TYPE`.

Does:
```php
public function headers($key = null, $value = null, $replace = true) {
	if (!$key) {
		foreach($this->_env as $name => $value) {
			if ($name === 'HTTP_CONTENT_TYPE' || $name === 'HTTP_CONTENT_LENGTH') {
				continue;
			}
			if (($tmp = substr($name, 0, 5)) === 'HTTP_') {
				$name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $tmp))));
				$this->headers($name, $this->env($name));
			}
		}
		$this->headers('Content-Type', $this->env('CONTENT_TYPE'));
		$this->headers('Content-Length', $this->env('CONTENT_LENGTH'));
	}
	return parent::headers($key, $value, $replace);
}
```
And let 'CONTENT_TYPE' /  'CONTENT_LENGTH' be initialized by the `::env()` function make sense for you ?

a kind of:
```php
	case 'HTTP_CONTENT_TYPE':
		$val = 'text/html';
	break;
	case 'CONTENT_TYPE':
		return $this->env('HTTP_CONTENT_TYPE');
	break;
	case 'CONTENT_LENGTH':
		return $this->env('HTTP_CONTENT_LENGTH');
	break;
break;
```