Что такое «необработанный HTTP-заголовок»? В чем разница между «HTTP-заголовком» и «сырым HTTP-заголовком»?

В Zend Framework в классе ответов существуют два разных массива для хранения заголовков: _headers[] и _headersRaw[] . И есть соответствующие методы для настройки каждого из них:

setHeader(), getHeaders(), clearHeader() и

setRawHeader(), getRawHeaders(), clearRawHeaders() .

В чем причина наличия «заголовка» и «исходного заголовка»? Есть ли какой-то особый вид использования на практике для каждого из этих заголовков?

используя setHeader, вы устанавливаете пару ключей vale, не беспокоясь о форматировании, например

 $this->getResponse()->setHeader('Content-type','json'); 

в то время как в случае setRawHeader () вы помещаете весь / полный заголовок, как и при правильном формировании

Я немного опаздываю здесь …

Исходное означает, что заголовок не кодируется URL-адресом, а если слово «raw» опущено, заголовок закодирован. Например:

 $header = 'http://www.mywebsite.com?q=string'; // this is raw, no encoding echo $header; // no encoding so output is -> http://www.mywebsite.com?q=mystring echo rawurlencode($header); // URL-encoded so output is -> http%3A%2F%2Fwww.mywebsite.com%3Fq%3Dstring 

Специальные символы: /? = были закодированы в URL как

% 3A% 2F% 3F% 3D

соответственно.