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


What is the "raw HTTP header"? What is the difference between "HTTP header" and "raw HTTP header"?

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

setHeader(), getHeaders(), clearHeader()

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

拥有"标头"

和"原始标头"的原因是什么?这些标头中的每一个在实践中是否有某种特殊的用法?

使用setHeader,您可以设置键谷对,而不必担心格式,例如

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

而在 setRawHeader() 的情况下,您将整个/完整标题按原样放置正确的格式

我在这里有点晚了...

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%3楼%3D

分别。