php的标题函数有什么作用?

时间:2015-06-21 13:37:56

标签: php function http header content-type

我无法找到解决此问题的方法。 我很难用这段代码。根据我搜索的内容: HTTP/1.1 200 OK - 表示页面正常或正常。 我不明白这个头功能部分。 它实际上是代码的一部分。

我的问题是:

  1. 为什么此代码正在发送header('HTTP/1.1 200 OK');?我知道这段代码意味着页面很好,但为什么我们发送这段代码?

  2. 什么是缓存控制部分,如果代码发送了会发生什么?

  3. 什么是Expires:,日期是1970年? (请简单解释)

  4. 如果代码发送标题('Content-type: application/json');此部分会发生什么,为什么我们发送此内容?

  5. 代码在这里:

    function json_response( $data, $error=false ) {
      if( $error )
        header('HTTP/1.1 500 JSON Error');
    else
        header('HTTP/1.1 200 OK');
    
    header('Cache-Control: no-cache, must-revalidate');
    header('Expires: Mon, 01 Jan 1970 00:00:00 GMT');
    header('Content-type: application/json');
    
    // Convert strings/integers into an array before outputting data...
    if(!is_array($data))
        echo json_encode(array($data), true);
    else
        echo json_encode($data, true);
    exit;
    }
    

3 个答案:

答案 0 :(得分:1)

  

为什么这段代码发送“header('HTTP / 1.1 200 OK');”?我知道这段代码意味着页面很好,但为什么我们发送这段代码?? _

这会告诉您的浏览器找到了所请求的脚本。然后broswer可以假设它也将获得一些其他数据。

  

什么是缓存控制部分?如果代码发送了什么会发生什么?_

这告诉浏览器和中间缓存,不要缓存我发送的数据。这样,当您对此数据发出第二次请求时,它必须转到您的服务器并重新运行数据收集过程,而不是从浏览器缓存或互联网上的某个中间缓存获取数据,在您的broswer和你的服务器。

  

什么是“过期:”?而日期是1970年? (请简单解释)_

这又是缓存控制。是说缓存应该在1970年到期,换句话说,如果你有缓存,你应该删除它,因为1970年是很久以前。

  

如果代码发送标头会发生什么('Content-type:application / json');这部分?为什么我们发送这个??? _

这是告诉浏览器您发送的数据是JSON格式,因此如何处理它,在您的情况下,它意味着将发送的JSON字符串转换为javascript对象,以便javascript代码可以处理它作为本机对象,而不必手动将JSON字符串转换为Javascript对象。

答案 1 :(得分:0)

您只需返回浏览器,其中包含类型为json(header('Content-type: application/json');)的内容,该内容将在检索(header('Expires: Mon, 01 Jan 1970 00:00:00 GMT');)后直接过期。如果您的浏览器尚未过期已收到的代码并再次请求它,您将说明这些代码不应在缓存中使用。相反,它应该再次从服务器检索(header('Cache-Control: no-cache, must-revalidate');)。

header('HTTP/1.1 200 OK');只是设置在你的代码前面设置了另一个标题(我认为)。通常,如果没有标题集,可以省略。

答案 2 :(得分:0)

代码从脚本返回json格式数据。

如果没有错误,标题会返回HTTP / 1.1 200 OK,这意味着,数据将打印到页面。

缓存控制意味着您请求的数据无法写入内存 - 这意味着,每次加载页面时,都必须重新加载从页面获取的数据。

过期 - 我想它存在同样的原因是Cache-control,如果过期日期总是在过去,这意味着,每次你访问页面时,你都会重新加载它给你的所有数据。

Application / json指定脚本返回的数据应该被视为JSON类型,什么是JSON,谷歌那样。

相关问题