2015-06-21 14 views
-2

我找不到解决此问题的任何解决方案。 我很难用这段代码。根据我搜索的内容: HTTP/1.1 200 OK - 表示该页面良好或正常。 我不明白这个头部功能部件。 它实际上是代码的一部分。php的头文件功能是做什么的?

我的问题是:

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

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

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

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

代码是在这里:

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; 
} 
+1

请参阅[RFC7230](https://tools.ietf.org/html/rfc7230)。 – mario

+1

这个问题本来可以通过在谷歌或任何其他搜索引擎上的简单搜索来回答。文档中详细解释了'header()'函数。 –

+0

我在这里发布,因为我没有在搜索引擎中找到任何答案 –

回答

1

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

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

什么是缓存控制部分?以及如果代码发送那将会发生什么?_

这告诉浏览器和中间缓存,不要缓存我发送的数据。这样,当你再次请求这些数据时,它将不得不转到你的服务器并重新运行数据收集过程,而不是从浏览器缓存或互联网上某处的中间缓存获取数据,在你的浏览器和你的服务器。

什么是“过期:”?这个日期是1970年? (请简单说明)_

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

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

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

+0

使用标头('HTTP/1.1 200 OK')有什么区别;并没有使用?我试过这个代码,但我看不到任何区别 ,我看到很多没有该标题的php代码 –

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');只是设置在你的代码前面有另一个头集(我认为)。通常情况下,如果没有设置标题,可以省略。

0

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

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

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

过期 - 我猜这是因为Cache控制的原因,如果过期日期总是过去,这意味着每次访问页面时,都会重新载入它提供的所有数据。

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