第85讲响应详解
上一节课讲了请求。这一节课讲响应。请求和响应是对应的,我们向服务器发送一个请求,服务器就给我们发送一个响应。
(Status-Line) HTTP/1.1 200 OK 【200 ok表示客户端请求成功】
Server nginx 【表示告诉浏览器,服务器的情况】
Date Fri, 17 Mar 2017 10:11:42 GMT 【告诉浏览器,发请求的当前时间】
Last-Modefied:Tue,11 July2017 18:23:51 GMT【表示浏览器请求的资源的最新时间】
Content-Type application/json;charset=UTF-8 【文档类型及编码方式】
Content-Length 105 【表示会送的数据有105个字节】
Connection keep-alive 【keep-alive表示当前会话尚在通话】
Api-Server-IP 10.75.2.228
refresh 5;url='http://localhost/test/d.php' 【refresh后面的第一个参数表示间隔多少秒之后跳转到指定的页面。’;’前面的数字表示间隔多少秒,’;’后面的url表示要跳转的页面】
Set-Cookie:SS=
Cache-Control max-age=31536000 【缓存】
Expires Mon, 19 Mar 2018 14:12:47 GMT
Pragma: no-cache
状态码:
100~199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200~299 表成功接收请求并已完成整个处理过程,常用200
300~399 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302.304
400~499 客户端的请求有错误,常用404。
500~599 服务器端出现错误,常用500。
302状态码的使用
比如我们现在希望访问a.php页面,让其自动重定向到b.php页面,再由b.php重定向到c.php。
a.php:
<?php
header("Location:b.php");
?>
b.php:
<?php
header("Location:c.php");
?>
c.php:
<?php
echo “ni hai hao ma ?”
?>
如下图所示,服务器给我返回了3个响应结果,前两个状态码是302,因为我们在a.php和b.php中各有一次跳转。第三次成功请求到页面
下面演示如何通过Http响应,控制浏览器间隔一定时间去跳转(使用Refresh),header()函数中的关键字会被写入到服务器的响应头中(Response Header)。
c.php:
<?php
header("Refresh: 5;url='http://localhost/test/d.php'");
?>
d.php
<?php
echo "ni hai hao ma ?";
echo "<img src='Desert.jpg' width='100px'></img>";
?>
页面访问http://localhost/test/c.php,间隔5秒之后跳转到d.sh,加载出Desert.jpg图片。如下图1: (从图中箭头所指的时间可以看出跳转的时间间隔。同时从响应头消息中可以看出Refresh关键字被加入进去了。如图2)
图1:
图2: