430 likes | 552 Views
网 站 设 计 与 建 设 Website design and developments. 第三部分 网站设计技术. 第 14 章 Metadata, Cookies 与 Web 设计. 概 述. Metadata Cookies. 14.1 Metadata. Metadata: 元数据 描述数据的数据 描述网页的内容,由页面内容可用的但不必为用户显示的概要信息组成。 失效日期 作者名字 搜索引擎关键字 搜索引擎网页大纲的描述信息. 1.<Meta> 标记. <head> … .. </head> <body> …… </body>.
E N D
第三部分 网站设计技术 第14章 Metadata, Cookies与Web 设计
概 述 • Metadata • Cookies
14.1 Metadata • Metadata: 元数据 • 描述数据的数据 • 描述网页的内容,由页面内容可用的但不必为用户显示的概要信息组成。 • 失效日期 • 作者名字 • 搜索引擎关键字 • 搜索引擎网页大纲的描述信息
1.<Meta>标记 • <head> • ….. • </head> • <body> • …… • </body> <meta ... >
META属性 • Name • http-equiv • content • :创建或者改变文档的概要信息 • <META NAME=“nameValue” CONTENT=“contentValue”> • <META HTTP-EQUIP=“nameValue”CONTENT=“contentValue”>
2.http-equiv 属性 • 加入到 http 头中
2.http-equiv 属性 • 加入到 http 头中 HTTP头 Please refreash on 11/20/2002 at 8:21:57 ….
HTTP头 (header) 是服务器以 HTTP 传 HTML 资料到浏览器前所送出的字串,在标头 与 HTML 文件之间尚需空一行分隔。 • 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx
字符集选择 content-type <meta http-equiv=“content-type” content=“text/html; GB2312”> • 在指定时间后, 页面跳转 refresh <meta http-equiv=“refresh” content=“20; URL=www.sina.com.cn”> • 控制浏览器的页cache pragma <meta http-equiv=“pragma” content=“no-cache”> • 网页有效期 expires <meta http-equiv=“expires” content=“Fri, 8,Aug,2008 08:23:41 GMT”>
PHP 设置<meta> 内容 • Header() 函数 <?php header("refresh:3;url=http://axgle.za.net"); print('正在加载,请稍等...<br>三秒后自动跳转~~~'); ?>
3.NAME属性:用于不响应HTTP头的信息类型,信息值不被加入到HTTP头中,但仍然保留在HTML文档中。3.NAME属性:用于不响应HTTP头的信息类型,信息值不被加入到HTTP头中,但仍然保留在HTML文档中。
网页作者 author <meta name=“author" content=“lyunc"> • 关键字 keywords <meta name=“keywords” content=“xml,car"> • META标记符允许大多数搜索引擎并不是所有搜索引擎通过该标记符找到该网站-keywords关键词。 • 一个关键字<=1000字符,忽略255字符后的内容 • 选择和网站相关的关键字 • 使用关键字的单数、复数以及其他变体 • 不要使用冠词、介词和连结词等
14.2 cookies • 小文本文件 • 服务器在HTTP响应头中发送给用户浏览器 • 维持客户端与服务器端的状态 • 保存在客户端的一个目录中 C:\Documents and Settings\Administrator\Cookies
可以用 setcookie() 函数来设置 cookie • bool setcookie ( string name , string value , int expire , string path , string domain , bool secure , bool httponly)name: cookie变量名value: cookie变量的值expire: 有效期结束的时间, path: 有效目录, domain: 有效域名,顶级域唯一secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以.
<?php$value='something from somewhere';setcookie("TestCookie",$value);/* 简单cookie设置 */setcookie("TestCookie",$value,time()+3600);/* 有效期1个小时 */setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".example.com", 1);/* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */?>
使用header()设置cookie;header("Set-Cookie: name=$value;path=$path[;domain=xxx.com;...]]");后面的参数和上面列出setcookie函数的参数一样.$value='something from somewhere';header("Set-Cookie:name=$value");
Cookie的读取: • 直接用php内置超级全局变量 $_COOKIE就可以读取浏览器端的cookie.上面例子中设置了cookie"TestCookie",现在我们来读取: • print $_COOKIE['TestCookie'];
删除cookie只需把有效时间设为小于当前时间, 和把值设置为空. • setcookie("name","",time()-1); • 用header()类似.
Session机制 • http协议是一种无状态的连接,要想跟踪用户的行为就必须有一个能工作于不同于页面的变量,在PHP中可以用cookie和session两种办法实现。 • cookie机制采用的是在客户端保持状态的方案, • session机制采用的是在服务器端保持状态的方案。
在PHP中,session可以有两种办法实现, • 用cookie,即把sessionID保存在cookie文件中; • 把sessionID附带在URL上进行传递 • URL重写----把session id直接附加在URL路径的后面。 <a href="submit.php<?=sessionID;?>"> • 提交表单</a>
表单隐藏字段-----服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。 <form name=“testform” action=“/xxx”> <input type=“hidden”name=“jsessionid” value=“ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764”> <input type=“text”> …… </form>
Header() 重定向 • 标头 (header) 是服务器以 HTTP 传 HTML 资料到浏览器前所送出的字串,在标头 与 HTML 文件之间尚需空一行分隔。 • 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx
使浏览器重定向到 PHP的官方网站。 • Header("Location: http://www.php.net";); exit; >?
<?php • if(xxx) • { • Header("Location: http://www.php.net"); • } • else • { • Header("Location: http://www.php2.net"); • } • ?>
<?php • header("refresh:3;url=http://axgle.za.net"); • print('正在加载,请稍等...<br>三秒后自动跳转~~~'); • ?>
要使用者每次都能得到最新的资料,而不是 Proxy 或 cache 中的资料,可以使用下列的标头 • header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); • header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); • header("Cache-Control: no-cache, must-revalidate"); • header("Pragma: no-cache");
让使用者的浏览器出现找不到档案的信息。 header("Status: 404 Not Found"); • 让使用者下载档案。 header("Content-type: application/x-gzip"); header("Content-Disposition: attachment; filename=文件名\"); header("Content-Description: PHP3 Generated Data"); ?>
删除Cookies • C:\Documents and Settings\ Administrator\Cookies • http://www.3721.com