What is the “raw HTTP header”? What is the differe

2019-04-08 11:49发布

In Zend Framework in Response Class there are two different arrays for storing headers: _headers[] and _headersRaw[]. And there are appropriate methods for setting each one:

setHeader(), getHeaders(), clearHeader() and

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

What is the reason to have "header" and "raw header"? Is there some special kind of usage in practice for each of these headers?

2条回答
【Aperson】
2楼-- · 2019-04-08 12:36

using setHeader you set key vale pair without worrying about there formatting e.g

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

while in case of setRawHeader() you put the whole/full header as it is with proper formating

查看更多
地球回转人心会变
3楼-- · 2019-04-08 12:36

I'm a bit late here...

Raw means that the header is not URL-encoded, whereas if the word "raw" is omitted, the header is encoded. For example:

$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

The special characters : / ? = have been URL-encoded as

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

respectively.

查看更多
登录 后发表回答