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

问题描述 投票:0回答:3

在 Zend Framework 的 Response Class 中,有两个不同的数组用于存储标头:

_headers[]
_headersRaw[]
。并且每一项都有适当的方法来设置:

setHeader(), getHeaders(), clearHeader()

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

有“header”和“raw header”的原因是什么?这些标头在实践中是否有某种特殊的用法?

php zend-framework http-headers httpresponse
3个回答
2
投票

使用 setHeader 您可以设置键值对,而无需担心格式,例如

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

在 setRawHeader() 的情况下,您可以按正确的格式放置整个/完整标头


1
投票

我来晚了一点...

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

分别。


-1
投票

Возвращался долго raw header вместо header, долго не мог понять в чём прикол, в итоге заменил " " на "-"

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.