什么是“原始HTTP标头”? “HTTP标头”和“原始HTTP标头”之间有什么区别?

时间:2012-06-26 12:12:52

标签: php zend-framework http-headers httpresponse

在响应类的Zend Framework中,有两个不同的数组用于存储标头:_headers[]_headersRaw[]。并且有适当的方法来设置每一个:

setHeader(), getHeaders(), clearHeader()

setRawHeader(), getRawHeaders(), clearRawHeaders()

拥有“标题”和“原始标题”的原因是什么?实际上每个标题都有一些特殊用法吗?

2 个答案:

答案 0 :(得分:2)

使用setHeader设置关键值对,而不必担心格式化,例如

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

而在setRawHeader()的情况下,你把整个/完整的标题放在正确的格式化

答案 1 :(得分:0)

我在这里有点晚了......

Raw表示标题不是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

分别。