当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

8.2HTTP应用

9/17/2020 9:26:54 PM 人评论

8.2HTTP应用

8.2 HTTP应用

在第1.4节曾简要地阐述过HTTP协议,对该节内容的理解将有助于学习本节的知识。本节主要介绍一些和HTTP处理有关的函数。这些函数主要有:

❑函数header()。

❑函数setcookie()。

8.2.1 生成一个HTTP头

服务器在将HTML文档传送至客户端之前,会先发送一些数据的说明信息到浏览器,最后发送HTML文档数据,这些说明信息被称作头标。图8-4说明了浏览器和服务器之间通信的过程,以及服务器传送给服务器头标的时间。

图 8-4 HTTP通信过程

函数header()会将HTML文档的标头以HTTP协议发送至浏览器,告诉浏览器该如何处理这个页面。如果忘记了标头的概念,或者不清楚有哪些内容会被传送,请读者再熟悉一下第1章有关HTTP协议的介绍。该函数的语法如下所示。


header(string$str_header);


函数的参数$str_header是一个字符串,用来接收要发送的标头。事实上,这个函数还有两个可选参数,因为对初学者来说没有必要了解,这里不再赘述。

下面介绍函数header()的几个使用范例。

在PHP中,函数header()最常见的用法就是重定向。代码8-4实现将用户的访问重定向到PHP的官方网站。

代码8-4 使用函数header()重定向8-4.php


01 <?php

02 header("location:http://www.php.net");//重定向页面

03 exit;

04 ?>


【代码解析】经过第2行的重定向,你会发现打开了新的页面。

如果限制某一页面不能被用户访问,可以用代码8-5所示的程序,设置页面状态为404。

代码8-5 使用函数header()设置页面状态为“404未找到文件”8-5.php


01 <?php

02 header('HTTP/1.1 404 Not Found');//找不到网页的提示信息

03 header("status:404 Not Found");

04 ?>


【代码解析】通过浏览器访问该程序,会看到“找不到网页”和“HTTP 404-未找到”的提示,如图8-5所示。

图 8-5 设置页面状态为“404未找到文件”

代码8-6保证用户访问某页面时获取最新的内容,而不是读取客户端的缓存。

代码8-6 通过函数header()获取页面最新内容8-6.php


01 <?php

02 //告诉浏览器此页面的过期时间(用国际标准时间表示),只要是已经过去的日期即可

03 header("Expires:Mon,26 Jul 1970 05:00:00 GMT");

04

05 //告诉浏览器此页面的最后更新日期(用国际标准时间表示)也就是当天,目的就是强迫浏览器获取最新内容

06 header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT");

07 header("Cache-Control:no-cache,must-revalidate");//告诉浏览器不使用缓存

08

09 //与以前的服务器兼容,即兼容HTTP 1.0协议

10 header("Pragma:no-cache");

11 header("Content-type:application/file");//输出MIME类型

12 header("Content-Length:2850");//文件长度

13 header("Accept-Ranges:bytes");//接受的范围单位

14 header("Content-Disposition:attachment;filename=afilename");//默认时文件保存对话框中的文件名称

15 ?>


【代码解析】在PHP中,在向浏览器传送HTML文档之前,需要传完所有的标头。也就是说,函数header()必须在有任何实际输出之前调用,包括输出普通的HTML、空行或PHP代码。下面的代码就是错误的,因为在调用函数header()之前,已经输出了HTML标记<html>。


<html>

<?php

header('Location:http://www.example.com/');

?>


相关教程

共有条评论 网友评论

验证码: 看不清楚?