【问题标题】:What is the "raw HTTP header"? What is the difference between "HTTP header" and "raw HTTP header"?什么是“原始 HTTP 标头”? “HTTP 标头”和“原始 HTTP 标头”有什么区别?
【发布时间】:2012-06-27 18:07:45
【问题描述】:

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

setHeader(), getHeaders(), clearHeader()

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

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

【问题讨论】:

  • 用户指南中没有关于此的信息吗? (通常我只会说阅读手册,但我对 Zend 手册的经验是它远非全面)。

标签: php zend-framework http-headers httpresponse


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我来晚了……

    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

    分别。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2017-08-26
      • 1970-01-01
      • 2011-04-19
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多