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

7
在Zend框架中的响应类中,有两个不同的数组用于存储头信息:_headers []_headersRaw []。并且有相应的方法来设置每一个: setHeader(),getHeaders(),clearHeader()setRawHeader(),getRawHeaders(),clearRawHeaders()
为什么要有“header”和“raw header”?实际上,每个头信息在实践中是否有特殊的使用方式?

1
用户指南中没有关于此事的信息吗?(通常我会建议阅读手册,但我的Zend手册经验告诉我它并不全面)。 - GordonM
2个回答

2
使用setHeader,您可以设置键值对,而不必担心它们的格式,例如:
$this->getResponse()->setHeader('Content-type','json');

如果使用setHeader(),则需要将标题和值分开,而在使用setRawHeader()时,则需要将整个/完整的头部与适当的格式放置。


1

我来晚了一点...

原始表示头部未进行URL编码,而省略 "原始" 一词则表示头部已编码。例如:

$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
分别。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接