码迷,mamicode.com
首页 > Web开发 > 详细

php笔记06:http响应中的状态码

时间:2015-08-05 12:12:20      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

首先我们看一个360浏览器中使用开发截图如下:

技术分享

上面的Status Code:200  OK (这个就是状态码)

 

1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程.

200~299:表示成功接收请求,并且已经完成整个处理过程常用的是200.

300~399:为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用为302/304.

400~499:客户端的请求有错误,常用的404.

500~599:服务器端出现错误,常用的500.

 

2.举例说明http响应的实际应用

(1)状态码302使用

我们现在希望访问a.php页面,让其自动重定向到b.php

我们在php安装文件的htdos/http(在htdos新建一个http文件夹),里面分别写上a.php和b.php,两者的代码如下:

a.php:

<?php
    //这句代码会向客户端发送一个302状态码,告诉浏览器跳转访问b.php
    header("Location: b.php");
?>

b.php:

<?php
   
   echo "b.php页面";
   
?>

我们在浏览器中输入网址:http://localhost/http/a.php,打开浏览器开发人员工具

技术分享

 

抓包得到如下:get a.php (Status Code:302),我们查看到下面的Location:b.php

服务器回复给浏览器状态码302,也就是说告诉浏览器要跳转访问b.php文件(302就好像是一个跳转条件

技术分享

get b.php  (Status Code: 200 ),这时候就没有Location

技术分享

 

 

扩展一下,这里也可以跳转到外网处,也就是将a.php可以改成如下代码:

<?php
    //这句代码会向客户端发送一个302状态码,告诉浏览器跳转访问b.php
    //header("Location: b.php");
    header("Location: http://www.sohu.com");
?>

 

(2)状态码404使用

我们浏览器输入访问一个不存在的文件地址,http://localhost/http/c.php(这里c.php是在访问目录不存在的),抓包出现如下结果:

技术分享

 

下面是数据包的具体信息:Status Code:404 Not Found(没有找到相应的文件,该页面不存在)

技术分享

 

(3)状态码304使用

我们在php安装文件的htdos/http处,再写一个d.php文件,如下:

<?php
   echo "hello";
   echo "<img src=‘bad_mans.jpg‘ width =‘100px‘>";
?>

第一次再浏览器中访问这个文件,输入地址http://localhost/http/d.php,出现如下结果:

技术分享

 

上面的回复砖状态码为200,我就不说明了,前面说过了,当我们刷新这个访问页面,会出现以下结果:

技术分享

 

点击进入第二个数据包的解析:

技术分享

 

(1)首先我们看看这个Request:

If—Modified—Since: If-Modified-Since 则是由客户端往服务器发送的头,可 以看到,再次请求本地存在的 cache 页面时,客户端会通过 If-Modified-Since 头将先前服务器端发过来的 Last-Modified 最后修改时间戳发送回去,这是为了让服务器端进行验证,通过这个时间戳判断客户端的页面是否是最新的,如果不是最新的,则返回新的内容,如果是最新的,则 返回 304 告诉客户端其本地 cache 的页面是最新的,于是客户端就可以直接从本地加载页面了,这样在网络上传输的数据就会大大减少,同时也减轻了服务器的负担。

If—None—Match:"3000000012e37-22006-51c86b9113ba4"这个是发给服务器,工作原理是在HTTP Response中添加ETags信息。当客户端再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETags的值)。如果服务器验证资源的ETags没有改变(该资源没有改变),将返回一个304状态;否则,服务器将返回200状态,并返回该资源和新的ETags。

php笔记06:http响应中的状态码

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4704052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!