﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-时间-文章分类-Html/JavaScript/Ajax</title><link>http://www.blogjava.net/lvq810/category/31961.html</link><description>世间最可贵的就是“今”，最易丧失得也是“今”。因为它最容易丧失，所以更觉得它宝贵。</description><language>zh-cn</language><lastBuildDate>Sat, 20 Feb 2010 13:11:40 GMT</lastBuildDate><pubDate>Sat, 20 Feb 2010 13:11:40 GMT</pubDate><ttl>60</ttl><item><title>[转载]有关 JavaScript 的 10 件让人费解的事情</title><link>http://www.blogjava.net/lvq810/articles/313020.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Sun, 14 Feb 2010 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/313020.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/313020.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/313020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/313020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/313020.html</trackback:ping><description><![CDATA[JavaScript 可算是世界上最流行的编程语言，它曾被 Web 开发设计师贴上噩梦的标签，虽然真正的噩梦其实是 DOM
API，这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言，如今越来越被重视，虽则如此，JavaScript
仍然拥有很多让人费解的东西。
<p>1. 它以 Java 命名，但并不是 Java <br />
它最初叫 Mocha， 接着改名为 LiveScript，最后才确定命名为 JavaScript，根据历史记录，Java 的命名与
Netscape 和 Sun 之间的合作有关，作为交换条件，Netscape 在他们备受欢迎的浏览器中创建了 Java
运行时。值得一提的是，这个名字的出台几近一个玩笑，要知道，LiveScript 和 Java 在客户端脚本方面存在敌对关系。<br />
<br />
不管怎么说，人们后来不得不一再澄清的一件事就是，JavaScript 和 Java 毫无关系。<br />
2. Null 是个对象？ <br />
看看这段代码，它返回的是 object。<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/null_object.gif" /><br />
<br />
这实在令人费解，假如 null 表示空值，它怎么可以是对象？简单说，它是 JavaScript 最初版本的错误，这个错误甚至被微软的
JScript 直接借用。<br />
3. NaN  !== NaN <br />
NaN，表示一个非数字的值，然而问题是，NaN不等于任何东西，甚至不等于它自己。<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/nan_not_equal_nan.gif" /><br />
<br />
这显然不对，事实上，如果要判断一个值确实是 NaN，你需要用 isNaN() 函数。<br />
4. 全局变量 <br />
对全局变量的依赖一直被视为 JavaScript 最坏的部分（ECMA 的 JavaScript 5 已经去掉了全局变量，请参阅 <a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K875.aspx">ECMA
推出 JavaScript 5</a> - 译者注）。对简单的页面，这无所谓，但复杂的页面，如果包含大量 JavaScript
脚本，你很难知道某个全局变量是在哪里声明的，如果几个全局变量不小心重名，就会引发错误。<br />
5. 那些统统被探测为 Mozilla User-Agent 的浏览器 <br />
必须承认，事实上，这不是 JavaScript  的错，是各个浏览器有意为之。比如，以下是用 JavaScript 探测 Safari
时得到的结果：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/safari_user_agent.gif" /><br />
<br />
是否注意到其中的第一个单词 <strong>Mozilla/5.0</strong>，为什么 Safari 会被探测为 Mozilla，尽管
Safari 后来已经纠正这一问题，但仍然不能解释为什么它们要这样误导开发者。事实上，你会发现，绝大多数浏览器把他们的 User Agent
设置为 Mozilla，答案要回到10年前，这更多是一种策略。<br />
<br />
User Agent 是一段用来标识当前浏览器身份的字符串，世界上第一个浏览器 Mosaic， 曾这样标志自己：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/mosaic_user_agent.gif" /><br />
<br />
这很合理，因此当 Netscape 出来的时候，它保留了 Mosaic 这个传统，还在后面添加了一个加密方式部分。<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/netscape_user_agent.gif" /><br />
<br />
到目前为止，一切安好，直到 IE3 发布，当 IE3 发布的时候，Netscape
正如日中天，那时，很多服务器和程序已经部署了客户端探测机制，以便认出 Netscape，虽然现在看来，这很值得争议，但当时并没什么。当 IE
初次推出它们的 User Agent 标志的时候，是这个样子：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/ie_user_agent_1.gif" /><br />
<br />
<strong> </strong><br />
<br />
这让 IE 很被动，因为 Netscape 已经能被很多服务器识别，因此，开发者们干脆希望 IE 被误认为 Mozilla，然后，再单独加一个
IE 的标签。<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/ie_user_agent_2.gif" /><br />
<br />
如今，几乎所有浏览器都步 IE 后尘，将自己标识为 Mozilla，这大概是一种连锁反应。<br />
6. 不一致的函数范围 <br />
参看以下代码：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/scope_inconsistencies.gif" /><br />
<br />
foo(bar.method) 返回结果不同原因是，method 函数是被当作 windows 对象，而不是 bar
下的对象调用的。要解决这个问题，我们必须从传递的匿名函数中调用 bar.method() 。<br />
7. 位操作符 <br />
JavaScript 和 Java 有不少共同之处，如位操作。<br />
</p>
<ul>
    <li><strong>&amp;</strong> - <em>and</em></li>
    <li><strong>|</strong> - <em>or</em></li>
    <li><strong>^</strong> - <em>xor</em></li>
    <li><strong>~</strong> - <em>not</em></li>
    <li><strong>&gt;&gt;</strong> - <em>signed right shift</em></li>
    <li><strong>???</strong> - <em>unsigned  right shift</em></li>
    <li><strong>&lt;&lt;</strong> - <em>left shift</em></li>
</ul>
<br />
看看第一个 &amp; 操作符，使用 &amp;&amp; 应该更有效，因为 JavaScript 和 Java 不一样，JavaScript
没有整数，需要来回转换，因此，转换操作花的时间更长。<br />
8. 太多的空值类型 <br />
诸如 null, false, undefined 一类的值几乎表示同样的意思，它们之间的不同又让人很迷惑。<br />
9. 算术问题 <br />
虽然 JavaScript 包含很多算术操作，但你不妨运行一下下面的算式，".2+.4" 应该等于 ".6" 是不是，然而返回的确是
"0.6000000000000001"。JavaScript 在小数计算访问存在一些小问题。<br />
<div><img alt="Math" src="http://nettuts.s3.amazonaws.com/571_jsWrong/math.png" original="http://nettuts.s3.amazonaws.com/571_jsWrong/math.png" style="border: 1px solid #a0a0a0;" /></div>
<br />
为什么会这样？简单说，因为 JavaScript 使用 IEEE 标准进行二进制浮点运算，不过，对整数计算是没问题的。<br />
10. 莫名其妙的代码错误 <br />
看看以下两段代码：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/code_error_1.gif" /><br />
<br />
它们应该是一样的，只是 { 位置不同而已，是吧。然而我们再看下面的代码：<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/code_error_2.gif" /><br />
<br />
如果我们把其中的<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/code_error_3.gif" /><br />
<br />
换成<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/code_error_4.gif" /><br />
<br />
就会引发错误，这是因为 JavaScript 有一个功能，会纠正它认为错误的代码书写，它会自作聪明地在 return 这个词后面插入一个 ";"
，错误因此而生。<br />
<br />
<img alt="" src="http://www.comsharp.com/Writable/Resource/_Random_/2010-02-14/code_error_5.gif" /><br />
<br />
本文来源：<a href="http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/">http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/</a>
<img src ="http://www.blogjava.net/lvq810/aggbug/313020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2010-02-14 22:29 <a href="http://www.blogjava.net/lvq810/articles/313020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]HTML 5 预览</title><link>http://www.blogjava.net/lvq810/articles/285044.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Wed, 01 Jul 2009 16:07:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/285044.html</guid><description><![CDATA[<p>原文：<a title="http://www.alistapart.com/articles/previewofhtml5" href="http://www.alistapart.com/articles/previewofhtml5">http://www.alistapart.com/articles/previewofhtml5</a><br />
作者：Lachlan Hunt<br />
译者：zhaozy in 3user.com</p>
<p><strong>概要</strong></p>
<p>网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来到我们身边已经差不多有10年了, 发行者们不断的寻求提供更强大的功能的新技术, 但是常会因为标记语言和浏览器的约束而路途坎坷.</p>
<p>为了给作者们提供更灵活, 更具互操作性, 能有更多交互性并令人振奋的网站和应用程序, HTML 5 引入并加强了一系列功能, 包括表单控制, 应用程序接口(APIs), 多媒体, 结构化和语义化.</p>
<p>HTML 5的工作, 开始于2004年, 在 W3C HTML WG 和 WHATWG 的共同努力下现在正在全面贯彻落实. 很多关键角色参与了W3C的努力, 最具代表性的是4大浏览器厂商: Apple, Mozilla, Opera, Microsoft; 还有一系列的有着不同利益和专业技术的其他机构以及个人.</p>
<p>编写详细规范的工作还在进行中, 离完成还有很长的路要走. 同样的, 在这篇文章中讨论的功能不排除在未来有所改动的可能. 这篇文章只是以大纲的形式介绍一些在当前的草案中的主要的特性.</p>
<p><strong>结构</strong></p>
<p>HTML 5 引入了一整套全新的元素来让构建页面变得更加简单. 大多数基于HTML 4的页面的包含多种常用结构, 比如说页首(header), 页脚(footer)和纵列(column). 现阶段我们通常会用div元素标记这些区块, 然后为它们定义一个描述性的id或是class.</p>
<p><img alt="" src="http://www.blogjava.net/images/blogjava_net/lvq810/01.gif" border="0" height="255" width="510" /></p>
<p>图表说明一个典型的用div元素带上id和class属性标记的2栏布局. 其中包括页首(header)和页脚(footer), 在页首下面是一个水平导航条, 主体内容又包含了文章(article)和它右边的侧边栏(sidebar).</p>
<p>大量的使用div元素是因为目前的HTML 4版本缺少更明确的语义描述这些区块所致. HTML 5 为了表现这些不同的区块而引入了新的元素.</p>
<p><img alt="" src="http://www.blogjava.net/images/blogjava_net/lvq810/02.gif" border="0" height="255" width="510" /></p>
<p>那些div元素可以被新的元素代替了: header, nav, section, article, aside以及footer.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">nav</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">nav</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">article</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">article</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">aside</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">aside</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">footer</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">footer</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span></div>
<p>用这些新元素会有一些优势(相对于HTML 4). 当和标题元素(h1 - h6)一同使用时, 可以标记出嵌套的章节标题层次, 超越之前版本的HTML仅有的六个层次. 规范中包含了一份生成大纲的详细算法. 把结构化这些内容纳入考虑范围, 并仍旧向后兼容先前的版本. 这样可以在编辑工具以及浏览器中生成目录来帮助用户来浏览这个文档.</p>
<p>举例说明, 下面的标记结构使用了嵌套的章节和h1元素构成:</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Level&nbsp;1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Level&nbsp;2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Level&nbsp;3</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span></div>
<p>这里要注意, 为了更好的兼容现在的浏览器, 它也能在适当的位置利用其它的标题元素(h2 - h6)来代替h1元素.</p>
<p>通过辨别页面中的章节使用特殊章节元素的确切目的, 辅助的技术能帮助用户更容易的浏览这个页面. 举例, 他们能不费力的略过导航区块或者能快速的从一篇文章直接跳到下一篇而不需要作者提供跳转链接. 对于创作者来说, 在文档中去掉多余的div, 而用一些更明显的元素代替它们, 会让源代码更清楚而且更容易书写.</p>
<p>header元素表示一个区块的头部, "头部" 可能包含不只是区块的标题, 比如头部包含了副标题, 历史版本信息或是署名都是合理的.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">A&nbsp;Preview&nbsp;of&nbsp;HTML&nbsp;5</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="byline"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">By&nbsp;Lachlan&nbsp;Hunt</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Example&nbsp;Blog</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h2</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Insert&nbsp;tag&nbsp;line&nbsp;here.</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h2</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span></div>
<p>footer元素表示用上它的那个区块的脚部, 一个具代表性的 "脚部" 包括了这个区块的一些信息, 比如谁写了它, 链接到相关的文档, 版权信息等等.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">footer</span><span style="color: #0000ff;">&gt;</span><span style="color: #ff0000;">&amp;copy;</span><span style="color: #000000;">&nbsp;2007&nbsp;Example&nbsp;Inc.</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">footer</span><span style="color: #0000ff;">&gt;</span></div>
<p>nav元素表示一个导航链接的区块. 它同时适用于站点导航和目录.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">nav</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ul</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Home</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/products"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Products</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/services"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Services</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/about"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">About</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ul</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">nav</span><span style="color: #0000ff;">&gt;</span></div>
<p>aside元素为了存放和主要内容没有太大关系的内容, 是典型的标记提要内容方法.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">aside</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Archives</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ul</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/2007/09/"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">September&nbsp;2007</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/2007/08/"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">August&nbsp;2007</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="/2007/07/"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">July&nbsp;2007</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">li</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">ul</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">aside</span><span style="color: #0000ff;">&gt;</span></div>
<p>section元素表示了一份文档或是一个应用程序一般意义上的区块, 比方说章节.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Chapter&nbsp;1:&nbsp;The&nbsp;Period</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">It&nbsp;was&nbsp;the&nbsp;best&nbsp;of&nbsp;times,&nbsp;it&nbsp;was&nbsp;the&nbsp;worst&nbsp;of&nbsp;times,<br />
&nbsp;&nbsp;it&nbsp;was&nbsp;the&nbsp;age&nbsp;of&nbsp;wisdom,&nbsp;it&nbsp;was&nbsp;the&nbsp;age&nbsp;of&nbsp;foolishness,<br />
&nbsp;&nbsp;it&nbsp;was&nbsp;the&nbsp;epoch&nbsp;of&nbsp;belief,&nbsp;it&nbsp;was&nbsp;the&nbsp;epoch&nbsp;of&nbsp;incredulity,<br />
&nbsp;&nbsp;it&nbsp;was&nbsp;the&nbsp;season&nbsp;of&nbsp;Light,&nbsp;it&nbsp;was&nbsp;the&nbsp;season&nbsp;of&nbsp;Darkness,<br />
&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">section</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
(引用自</span><span style="color: #0000ff;">&lt;</span><span style="color: #ff0000;">A</span><span style="color: #800000;"> </span><span style="color: #ff0000;">Tale&nbsp;of&nbsp;Two&nbsp;Cites</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">)</span></div>
<p>article元素表示一份文档, 站点的页面中独立的区块. 它适用于类似新闻, blog文章, 论坛帖子或者个人注释这样的内容.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">article&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="comment-2"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h4</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="#comment-2"</span><span style="color: #ff0000;">&nbsp;rel</span><span style="color: #0000ff;">="bookmark"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Comment&nbsp;#2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="http://example.com/"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Jack&nbsp;O'Niell</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h4</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">time&nbsp;</span><span style="color: #ff0000;">datetime</span><span style="color: #0000ff;">="2007-08-29T13:58Z"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">August&nbsp;29th,&nbsp;2007&nbsp;at&nbsp;13:58</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">time</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">header</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">That's&nbsp;another&nbsp;great&nbsp;article!</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">article</span><span style="color: #0000ff;">&gt;</span></div>
<p><strong>视频和音频</strong></p>
<p>在最近几年, 网络上的视频和音频日益增多, 像是youtube, Viddler, Revver, MySpace, 还有其他很多可以让任何一个人更容易的发布视频和音频的网站. 然而, 因为当前的HTML缺少必要的方法顺利的插入并控制多媒体, 很多网站都依赖Flash来提供这样的功能. 尽管可能可以用各种各样的插件 (就像是QuickTime, Windows Media等等) 嵌入多媒体, 但是Flash是当前唯一被广泛应用的, 提供了开发者们所渴望的跨浏览器兼容解决方案的插件.</p>
<p>对于各种基于Flash的媒体播放器, 创作者们对提供他们自己的用户定制设计的界面, 那一般都允许用户控制播放, 暂停, 停止, 查找或调整音量. 为浏览器提供插入视频和音频并提供DOM接口让Script控制播放的功能要通过安装本地程序支持.</p>
<p>视频和音频的新元素让这个工作变得更加简单. 这两者之间的大部分API都是共享的, 唯一区别就关系到可视和不可视媒体之间的固有区别.</p>
<p>Opera和Webkit已经放出了一个部分支持视频元素的版本, 你可以到 experimental build of Opera ( http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/ ) 或者最新的 nightly build of WebKit ( http://nightly.webkit.org/ ) 去下载并试验一下这些示例. Opera支持Ogg Theora, Webkit支持所有QuickTime支持的媒体格式, 包括第三方的解码器.</p>
<p>插入视频最简单的方法是使用video元素, 它会允许浏览器提供一个默认的用户界面, 其中controls属性是一个boolean值属性, 这个属性是让创作者决定用户界面是否要显示(默认是不显示).</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">video&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="video.ogv"</span><span style="color: #ff0000;">&nbsp;controls&nbsp;poster</span><span style="color: #0000ff;">="poster.jpg"</span><span style="color: #ff0000;">&nbsp;width</span><span style="color: #0000ff;">="320"</span><span style="color: #ff0000;">&nbsp;height</span><span style="color: #0000ff;">="240"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="video.ogv"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Download&nbsp;movie</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">video</span><span style="color: #0000ff;">&gt;</span></div>
<p>可选择的poster属性可以指定在视频播放前用来显示的图像. 尽管有一些视频格式有它们特有的预览图格式, 就像是MPEG-4, 它提供了一个可以不依赖于视频格式的可选择方案.</p>
<p>用audio元素在页面内插入音频文件也非常容易. audio和video元素的大部分属性都是共用的, 但非常显而易见的, audio元素没有width, height以及poster属性.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">audio&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="music.oga"</span><span style="color: #ff0000;">&nbsp;controls</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">a&nbsp;</span><span style="color: #ff0000;">href</span><span style="color: #0000ff;">="music.oga"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Download&nbsp;song</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">a</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">audio</span><span style="color: #0000ff;">&gt;</span></div>
<p>HMTL 5 提供了source 元素, 让浏览器根据媒体类型或编码器的支持来指定视频或音频文件. media属性会根据设备的局限性和被指定的媒体的类型和编码器来指定一个媒体选择查询.&nbsp; 当在使用 source 元素时, 上级元素( video或audio )的src属性需要省略掉, 不然 source 元素中的src属性会被忽略掉.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">video&nbsp;</span><span style="color: #ff0000;">poster</span><span style="color: #0000ff;">="poster.jpg"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="video.3gp"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="video/3gpp"</span><span style="color: #ff0000;">&nbsp;media</span><span style="color: #0000ff;">="handheld"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="video.ogv"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="video/ogg;&nbsp;codecs=theora,&nbsp;vorbis"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="video.mp4"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="video/mp4"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">video</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">audio</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="music.oga"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="audio/ogg"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="music.mp3"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="audio/mpeg"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">audio</span><span style="color: #0000ff;">&gt;</span></div>
<p>为了那些需要给用户界面更多一点控制来符合页面的总设计的创作者以方便, 广泛的API提供了一些方法和事件让scripts来控制媒体文件. 最简单的方法就是用 play(), pause(), 然后可以通过设置 currentTime 来进行循环. 接下去的例子会解释怎么用.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">video&nbsp;</span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="video.ogg"</span><span style="color: #ff0000;">&nbsp;id</span><span style="color: #0000ff;">="video"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">video</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #000000;"><br />
</span><span style="background-color: #f5f5f5; color: #0000ff;">var</span><span style="background-color: #f5f5f5; color: #000000;">&nbsp;video&nbsp;</span><span style="background-color: #f5f5f5; color: #000000;">=</span><span style="background-color: #f5f5f5; color: #000000;">&nbsp;document.getElementById(</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">video</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">button&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;">&nbsp;onclick</span><span style="color: #0000ff;">="video.play();"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Play</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">button</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">button&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;">&nbsp;onclick</span><span style="color: #0000ff;">="video.pause();"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Pause</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">button</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">button&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;">&nbsp;onclick</span><span style="color: #0000ff;">="video.currentTime&nbsp;=&nbsp;0;"</span><span style="color: #0000ff;">&gt;</span><span style="color: #800000;">&lt;</span><span style="color: #800000;">&lt;</span><span style="color: #800000;"> Rewind</span><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">/</span><span style="color: #800000;">button</span><span style="color: #0000ff;">&gt;</span></div>
<p>还有很多这里没有讨论到的属性以及API可以被用到视频音频元素. 如果想知道更多, 你可以参考 current draft specification (http://www.whatwg.org/specs/web-apps/current-work/multipage/section-video.html#video).</p>
<p><strong>文档继承性</strong></p>
<p>不像先前版本的 HTML 和 XHTML根据它们的语法来定义, HTML 5 是根据文档对象模型(DOM)来定义的 - 浏览器中用来描述文档的的继承型树结构. 例如, 构成一个由 名称(title), 标题(heading) 和段落(paragraph) 的文档, 那么, 这个DOM 树可能看起来是这样的:</p>
<p><img alt="" src="http://www.blogjava.net/images/blogjava_net/lvq810/03.gif" border="0" /></p>
<p>这个DOM树包括: head中的title元素, body中的h1和p元素.</p>
<p>根据DOM定义的HTML 5的优点是这种语言可以不依赖于它自己的语法. 有两个主要的语法用来表现HTML文档: HTML的序列和XML的序列 .</p>
<p>HTML 序列从HTML稍早版本的SGML语法中得到灵感而引入的一种语法, 但是却定义成更适合浏览器在真实环境下处理HTML的方式.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;!</span><span style="color: #ff00ff;">DOCTYPE&nbsp;html</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">An&nbsp;HTML&nbsp;Document</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Example</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">This&nbsp;is&nbsp;an&nbsp;example&nbsp;HTML&nbsp;document.<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></div>
<p>你会注意到, 这看起来很像是前个版本的HTML, 有些标签会自动闭合.</p>
<p>XML 序列引入了XML 1.0的语法和命名空间, 就像是 XHTML 1.0.</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html&nbsp;</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/1999/xhtml"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">An&nbsp;HTML&nbsp;Document</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Example</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">This&nbsp;is&nbsp;an&nbsp;example&nbsp;HTML&nbsp;document.</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></div>
<p>除了间隔和xmls属性, 这两个例子几乎是相同的.</p>
<p>浏览器通过使用MIME类型来区别两者, 任何text/html形式的文档必须符合 HTML 序列, 任何MIME类型是XML的文档,像是 application/xhtml+xml 必须符合XML 序列.</p>
<p>创作者可能要根据需要哪些功能来决定使用哪种序列. 没有使用它们的强制性的条件, 他们在不同情形下都可能是最优方案.</p>
<p><strong>用HTML的好处</strong></p>
<p>&nbsp;&nbsp;&nbsp; * 向后兼容现有的浏览器<br />
&nbsp;&nbsp;&nbsp; * 创作者已经非常熟悉语法<br />
&nbsp;&nbsp;&nbsp; * 宽容和仁慈的语法, 将不会因为无意中的一个错误而对任何对用户有不友好的 "Yellow Screen of Death".<br />
&nbsp;&nbsp;&nbsp; * 语法相当容易记忆, 举例说: 创作者可以省略掉一些标签或是属性值.</p>
<p><strong>用XHTML的好处</strong></p>
<p>&nbsp;&nbsp;&nbsp; * 严格的XML语法鼓励创作者书写完整的标签, 有些用户会发现这样更容易维护.<br />
&nbsp;&nbsp;&nbsp; * 能直接的和其它XML词表结合, 比如 SVG 和 MathML.<br />
&nbsp;&nbsp;&nbsp; * 允许使用XML的处理过程, 有些创作者把这个过程作为他们编辑和发布过程的一部分.</p>
<p><strong>如何贡献</strong></p>
<p>HTML 5的工作进展很快, 但是由于要出示测试用例并实现互操作性, 它预期还会持续数年. 目前要完成的工作可能要10到15年的时间. 在这个过程中, 从各式各样的人都会有反馈, 在他们中间, web设计师和开发者, CMS和编辑工具的厂商和浏览器的厂商是确保成功的关键. 任何人都不只是欢迎, 更积极的是鼓励为HTML 5提供反馈.</p>
<p>除了规范之外, 还有更多相关的努力来帮助人们更好地理解这个工作.</p>
<p>The Differences from HTML 4 (http://www.w3.org/html/wg/html5/diff/) 描述了和前一版本的HTML的不同.<br />
The HTML Design Principles (http://www.w3.org/TR/html-design-principles/) 讨论一些原理来帮助作出决定, 这也会帮助你了解在众多的设计结果背后的原理.<br />
The Web Developer&#8217;s Guide to HTML 5 (http://dev.w3.org/html5/html-author/) 这是最近才开始做的, 这是为了帮助web设计师和开发者理解要书写符合规范的HTML 5的文档所需要知道的一切, 并且提供了指南, 也提供了描述得相当完整的试验.</p>
<p>你可以在很多的方面做出贡献. 你可以加入 W3C&#8217;s HTML WG , 订阅和贡献 HTML WG邮件列表, 或者完善它(wiki). 你也可以订阅或贡献其他的 WHATWG邮件列表, 在WHATWG 论坛发表文章, 在WHATWG 博客上留言或写文章.</p>
<img src ="http://www.blogjava.net/lvq810/aggbug/285044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2009-07-02 00:07 <a href="http://www.blogjava.net/lvq810/articles/285044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]来自Google的密码强度Javascript验证代码</title><link>http://www.blogjava.net/lvq810/articles/247361.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Fri, 19 Dec 2008 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/247361.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/247361.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/247361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/247361.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/247361.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 效果图：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&lt;script&nbsp;type="text/javascript"&gt;&nbsp;var&nbsp;agt&nbsp;=&nbsp;nav...&nbsp;&nbsp;<a href='http://www.blogjava.net/lvq810/articles/247361.html'>阅读全文</a><img src ="http://www.blogjava.net/lvq810/aggbug/247361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-12-19 16:46 <a href="http://www.blogjava.net/lvq810/articles/247361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片幻灯片切换特效</title><link>http://www.blogjava.net/lvq810/articles/212679.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Fri, 04 Jul 2008 12:41:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/212679.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/212679.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/212679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/212679.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/212679.html</trackback:ping><description><![CDATA[<div id="BlogArticleDetail" style="font-size: 14px;">
<p>现在各大门户网站的新闻、</p>
<p>游戏、体育、软硬件等页面都有一个类似Flash播放器的动态图片切换效果，</p>
<p>就是一张张的焦点新闻大图不断切换，图片下面的文字也随着图片的切换而变化，</p>
<p>而且我们还可以手动点击图片下面的&#8220;1、2、3、4&#8221;等手动切换，效果相当不错，让页面顿时生色。 <br />
<br />
例如：<a href="http://games.sina.com.cn/" target="_blank"><u><font color="#0000ff">http://games.sina.com.cn/</font></u></a> 新浪游戏频道 <br />
<a href="http://sports.sohu.com/" target="_blank"><u><font color="#0000ff">http://sports.sohu.com/</font></u></a> 搜狐体育频道 <br />
<a href="http://www.yesky.com/" target="_blank"><u><font color="#0000ff">http://www.yesky.com/</font></u></a> 天极网首页 <br />
<br />
细心的朋友可能发现，当我们在这个图片上面单击右键的时候就会发现他是一个Flash格式，</p>
<p>很多朋友以为他真是一个Flash，其实它是一个javascript+XML的特效，</p>
<p>外加一个Flash外壳，通过javascript动态读取XML中的数据，时刻能自动更新图片和图片的标题。</p>
<p>下面给出代码供大家参考。其中的focus.swf需要到网上去下载， 下载地址：<a href="http://www.webjx.com/js/focus.swf" target="_blank"><u><font color="#800080">http://www.webjx.com/js/focus.swf</font></u></a> <br />
<br />
&lt;script type="text/javascript"&gt; <br />
&lt;!-- <br />
imgUrl1="图片链接地址1"; <br />
imgtext1="图片文字显示内容1" <br />
imgLink1=escape("链接网页地址1"); <br />
imgUrl2="图片链接地址2"; <br />
imgtext2="图片文字显示内容2" <br />
imgLink2=escape("链接网页地址2"); <br />
imgUrl3="图片链接地址3"; <br />
imgtext3="图片文字显示内容3" <br />
imgLink3=escape("链接网页地址3"); <br />
<br />
<br />
var focus_width=180//图片宽 <br />
var focus_height=220//图片高 <br />
var text_height=18//文字显示高度 <br />
var swf_height = focus_height+text_height <br />
<br />
var pics=imgUrl1+"|"+imgUrl2+"|"+imgUrl3 <br />
var links=imgLink1+"|"+imgLink2+"|"+imgLink3 <br />
var texts=imgtext1+"|"+imgtext2+"|"+imgtext3 <br />
<br />
document.write('&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6" target="_blank"><u><font color="#800080">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6</font></u></a>,0,0,0" </p>
<p>width="'+ focus_width +'" height="'+ swf_height +'"&gt;'); <br />
document.write('&lt;param name="allowScriptAccess" value="sameDomain"&gt;</p>
<p>&lt;param name="movie" value="focus.swf"&gt;&lt;param name="quality" value="high"&gt;</p>
<p>&lt;param name="bgcolor" value="#F0F0F0"&gt;'); <br />
document.write('&lt;param name="menu" value="false"&gt;&lt;param name=wmode value="opaque"&gt;'); <br />
document.write('&lt;param name="FlashVars" value="pics='+pics+'&amp;links='+links+'&amp;texts='+texts+'&amp;borderwidth</p>
<p>='+focus_width+'&amp;borderheight='+focus_height+'&amp;textheight='+text_height+'"&gt;'); <br />
document.write('&lt;embed
src="pixviewer.swf" wmode="opaque"
FlashVars="pics='+pics+'&amp;links='+links+'&amp;texts='+texts+'&amp;borderwidth='+focus_width+'&amp;borderheight</p>
<p>='+focus_height+'&amp;textheight='+text_height+'" menu="false"
bgcolor="#F0F0F0" quality="high" width="'+ focus_width +'" height="'+
focus_height +'" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="<a href="http://www.macromedia.com/go/getflashplayer" target="_blank"><u><font color="#800080">http://www.macromedia.com/go/getflashplayer</font></u></a>" /&gt;'); document.write('&lt;/object&gt;'); <br />
&lt;/script&gt; </p>
</div>
<img src ="http://www.blogjava.net/lvq810/aggbug/212679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-07-04 20:41 <a href="http://www.blogjava.net/lvq810/articles/212679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手动幻灯图片效果</title><link>http://www.blogjava.net/lvq810/articles/212678.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Fri, 04 Jul 2008 12:41:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/212678.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/212678.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/212678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/212678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/212678.html</trackback:ping><description><![CDATA[&lt;html&gt;<br />
<br />
&lt;head&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />
&lt;title&gt;网页特效| www.qpsh.com&lt;/title&gt;<br />
&lt;style&gt;<br />
.spic a img{-moz-opacity:0.5; filter:alpha(opacity=50);border:0px;}<br />
.spic a:hover{font-size:9px;}<br />
.spic a:hover img{-moz-opacity:0.5; filter:alpha(opacity=100);cursor:hand;}<br />
&lt;/style&gt;<br />
&lt;script&gt;<br />
function seeBig(thispic) {<br />
&nbsp; if(thispic==1){<br />
&nbsp;&nbsp;&nbsp; document.all.viewPic.innerHTML='&lt;a target=_blank href=http://www.qpsh.com&gt;&lt;img border=0 src=http://news.xinhuanet.com/photo/2007-12/18/xinsrc_32212041808203903041948.jpg width=300 height=250 style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;'<br />
&nbsp; }<br />
&nbsp; if(thispic==2){<br />
&nbsp;&nbsp;&nbsp; document.all.viewPic.innerHTML='&lt;a target=_blank href=http://www.qpsh.com&gt;&lt;img border=0 src=http://news.xinhuanet.com/photo/2007-10/11/xinsrc_242100411072412537118.jpg width=300 height=250 style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;'<br />
&nbsp; }<br />
&nbsp; if(thispic==3){<br />
&nbsp;&nbsp;&nbsp; document.all.viewPic.innerHTML='&lt;a target=_blank href=http://www.qpsh.com&gt;&lt;img border=0 src=http://news3.xinhuanet.com/world/2007-01/15/xin_0220104150902234148817.jpg width=300 height=250 style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;'<br />
&nbsp; }<br />
&nbsp; if(thispic==4){<br />
&nbsp;&nbsp;&nbsp; document.all.viewPic.innerHTML='&lt;a target=_blank href=http://www.qpsh.com&gt;&lt;img border=0 src=http://news.xinhuanet.com/photo/2007-12/19/xinsrc_29212041908371712536913.jpg width=300 height=250 style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;'<br />
&nbsp; }<br />
}<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
<br />
&lt;body&gt;<br />
<br />
&lt;table border="0" width="300" cellpadding="0" style="border-collapse: collapse"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td colspan="7" align="center" id="viewPic"&gt;&lt;a target=_blank href=http://www.qpsh.com&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;img&nbsp; src="http://news.xinhuanet.com/photo/2007-12/18/xinsrc_32212041808203903041948.jpg" width=300 height=250 style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td colspan="7" align="center"&nbsp; height="15"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="70"&gt;&lt;span class="spic"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href=# onmouseover="javascript:seeBig(1)" style="cursor:pointer"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;img border="0" src="http://news.xinhuanet.com/photo/2007-12/18/xinsrc_32212041808203903041948.jpg" width="65" height="50" style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="7"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="70"&gt;&lt;span class="spic"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href=# onmouseover="javascript:seeBig(2)" style="cursor:pointer"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;img border="0" src="http://news.xinhuanet.com/photo/2007-10/11/xinsrc_242100411072412537118.jpg" width="65" height="50" style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="7"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="70"&gt;&lt;span class="spic"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href=# onmouseover="javascript:seeBig(3)" style="cursor:pointer"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;img border="0" src="http://news3.xinhuanet.com/world/2007-01/15/xin_0220104150902234148817.jpg" width="65" height="50" style="border: 1px solid #C0C0C0"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="6"&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;td align="center" width="70"&gt;&lt;span class="spic"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;a href=# onmouseover="javascript:seeBig(4)" style="cursor:pointer"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;img border="0" src="http://news.xinhuanet.com/photo/2007-12/19/xinsrc_29212041908371712536913.jpg" width="65" height="50" style="border: 1px solid #C0C0C0" align="right"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<br />
<br />
&lt;/body&gt;<br />
<br />
&lt;/html&gt;<br />
<img src ="http://www.blogjava.net/lvq810/aggbug/212678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-07-04 20:41 <a href="http://www.blogjava.net/lvq810/articles/212678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript自动图片切换</title><link>http://www.blogjava.net/lvq810/articles/212677.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Fri, 04 Jul 2008 12:40:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/212677.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/212677.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/212677.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/212677.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/212677.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlight...&nbsp;&nbsp;<a href='http://www.blogjava.net/lvq810/articles/212677.html'>阅读全文</a><img src ="http://www.blogjava.net/lvq810/aggbug/212677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-07-04 20:40 <a href="http://www.blogjava.net/lvq810/articles/212677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>10款让你震撼的图片展示js代码[转]</title><link>http://www.blogjava.net/lvq810/articles/211997.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Tue, 01 Jul 2008 12:40:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/211997.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/211997.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/211997.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/211997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/211997.html</trackback:ping><description><![CDATA[<strong>文章转载于：http://bolm.cn/blog/?p=154</strong><br />
<br />
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_01.jpg"><img class="alignnone size-full wp-image-144" title="10jsimg_01" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_01.jpg" alt="" height="210" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/1/" target="_blank">http://bolm.cn/designonline/10_js_img/1/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_02.jpg"><img class="alignnone size-full wp-image-145" title="10jsimg_02" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_02.jpg" alt="" height="209" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/2/" target="_blank">http://bolm.cn/designonline/10_js_img/2/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_03.jpg"><img class="alignnone size-full wp-image-146" title="10jsimg_03" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_03.jpg" alt="" height="211" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/3/" target="_blank">http://bolm.cn/designonline/10_js_img/3/</a></p>
<p></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_04.jpg"><img class="alignnone size-full wp-image-147" title="10jsimg_04" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_04.jpg" alt="" height="187" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/4/" target="_blank">http://bolm.cn/designonline/10_js_img/4/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_05.jpg"><img class="alignnone size-full wp-image-148" title="10jsimg_05" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_05.jpg" alt="" height="207" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/5/" target="_blank">http://bolm.cn/designonline/10_js_img/5/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_06.jpg"><img class="alignnone size-full wp-image-149" title="10jsimg_06" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_06.jpg" alt="" height="210" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/6/" target="_blank">http://bolm.cn/designonline/10_js_img/6/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_07.jpg"><img class="alignnone size-full wp-image-150" title="10jsimg_07" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_07.jpg" alt="" height="182" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/7/" target="_blank">http://bolm.cn/designonline/10_js_img/7/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_08.jpg"><img class="alignnone size-full wp-image-151" title="10jsimg_08" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_08.jpg" alt="" height="209" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/8/" target="_blank">http://bolm.cn/designonline/10_js_img/8/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_09.jpg"><img class="alignnone size-full wp-image-152" title="10jsimg_09" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_09.jpg" alt="" height="210" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/9/" target="_blank">http://bolm.cn/designonline/10_js_img/9/</a></p>
<p><a href="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_10.jpg"><img class="alignnone size-full wp-image-153" title="10jsimg_10" src="http://bolm.cn/blog/wp-content/uploads/2008/06/10jsimg_10.jpg" alt="" height="176" width="425" /></a></p>
<p><a href="http://bolm.cn/designonline/10_js_img/10/" target="_blank">http://bolm.cn/designonline/10_js_img/10/</a></p>
<p>[<a title="点击下载源码" href="http://bolm.cn/download/10_js_img.rar">源码下载</a>]</p>
<br />
<img src ="http://www.blogjava.net/lvq810/aggbug/211997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-07-01 20:40 <a href="http://www.blogjava.net/lvq810/articles/211997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTP协议头字段及分析</title><link>http://www.blogjava.net/lvq810/articles/210181.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Mon, 23 Jun 2008 14:48:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/210181.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/210181.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/210181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/210181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/210181.html</trackback:ping><description><![CDATA[http头的组成：
<div>==============</div>
<div>&nbsp;HTTP头字段包括4类： </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; general-header ;</div>
<div>&nbsp;&nbsp; &nbsp; request-header ;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response-header ;</div>
<div>&nbsp;&nbsp; &nbsp; entity-header .</div>
<div>&nbsp;</div>
<div>*******************************************************************************</div>
<div>&nbsp;General Header Fields</div>
<div>=============================</div>
<div>&nbsp;&nbsp; general header是request、response都可用的, 但是不能用于entity. </div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Cache-Control</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Connection</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Date</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Pragma</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Trailer</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Transfer-Encoding</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Upgrade</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Via</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Warning</div>
<div>&nbsp;</div>
<div>*******************************************************************************</div>
<div>&nbsp;Request Header Fields</div>
<div>======================</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp; request-header fields 允许客户端传递关于request和客户端的附加信息到服务端，</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Charset</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Encoding</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Language</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Authorization</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Expect</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ From</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Host</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Match</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Modified-Since</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-None-Match</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Range</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ If-Unmodified-Since</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Max-Forwards</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Proxy-Authorization</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Range </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Referer</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ TE</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ User-Agent</div>
<div>&nbsp;</div>
<div>*******************************************************************************</div>
<div>&nbsp;&nbsp;Response Header Fields</div>
<div>===============================</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp; response-header fields 允许服务端传递关于response的、不能放到Status-Line的附加信息。</div>
<div>&nbsp;&nbsp; 这些头给出关于服务端的信息。&nbsp;&nbsp; </div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Accept-Ranges</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Age</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ ETag</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Location </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Proxy-Authenticate</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Retry-After</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Server</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Vary </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ WWW-Authenticate</div>
<div>&nbsp;</div>
<div>*******************************************************************************</div>
<div>&nbsp;Entity Header Fields</div>
<div>========================</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp; Entity-header fields 定义关于entity-body的metainformation(标题字段数据),</div>
<div>&nbsp;&nbsp; 如果当前没有body, 则定义被request确定的资源信息.</div>
<div>&nbsp;&nbsp; 一些metainformation是可选的; 一些是必须的。</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Allow</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Encoding</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Language</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Length</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Location</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-MD5</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Range</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Content-Type</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Expires</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ Last-Modified</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －－ extension-header<br />
<br />
<br />
<br />
<div align="left"><strong>一、基础篇<br />
</strong>HTTP（HyperTextTransferProtocol）
是超文本传输协议的缩写，它用于传送WWW方式的数据，关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服
务器发送一个请求，请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响
应，相应的内容包括消息协议的版本，成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。<br />
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行，一个或者多个头域，一个只是头域结束的空行和可选的消息体组成。<strong>HTTP的头域包括通用头，请求头，响应头和实体头四个部分</strong>。<font color="#0033ff">每个头域由一个域名，冒号（:）和域值三部分组成。</font>域名是大小写无关的，域值前可以添加任何数量的空格符，头域可以被扩展为多行，在每行开始处，使用至少一个空格或制表符。<br />
<strong>1、通用头域</strong><br />
<font color="#0000ff">通用头域包含请求和响应消息都支持的头域，通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。</font>对通用头域的扩展要求通讯双方都支持此扩展，如果存在不支持的通用头域，一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。<br />
<strong>Cache-Control头域</strong><br />
<font color="#0000ff">Cache-Control指定请求和响应遵循的缓存机制。</font>在
请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-
store、max-age、max-stale、min-fresh、only-if-cached，响应消息中的指令包括public、
private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、
max-age。各个消息中的指令含义如下：<br />
<strong>Public</strong>指示响应可被任何缓存区缓存。<br />
<strong>Private</strong>指示对于单个用户的整个或部分响应消息，不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息，此响应消息对于其他用户的请求无效。<br />
<strong>no-cache</strong>指示请求或响应消息不能缓存<br />
<strong>no-store</strong>用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。<br />
<strong>max-age</strong>指示客户机可以接收生存期不大于指定时间（以秒为单位）的响应。<br />
<strong>min-fresh</strong>指示客户机可以接收响应时间小于当前时间加上指定时间的响应。<br />
<strong>max-stale</strong>指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值，那么客户机可以接收超出超时期指定值之内的响应消息。<br />
<strong>Date头域</strong><br />
<font color="#0000ff">Date头域表示消息发送的时间</font>，时间的描述格式由rfc822定义。例如，Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时，换算成本地时间，需要知道用户所在的时区。<br />
<strong>Pragma头域</strong><br />
<font color="#0000ff">Pragma头域用来包含实现特定的指令，最常用的是Pragma:no-cache。</font>在HTTP/1.1协议中，它的含义和Cache-Control:no-cache相同。<br />
<strong>2、请求消息</strong><br />
请求消息的第一行为下面的格式：<br />
<strong><font color="#0033ff">Method　SP　Request-URI　SP　HTTP-Version　CRLF</font></strong>　<br />
<strong>Method表示对于Request-URI完成的方法</strong>，这个字段是大小写敏感的，<font color="#0000ff">包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。</font>方法GET和HEAD应该被所有的通用WEB服务器支持，其他所有方法的实现是可选的。<font color="#0000ff"><strong>GET方法</strong>取回由Request-URI标识的信息。</font>HEAD方法也是取回由Request-URI标识的信息，只是可以在响应时，不返回消息体。<font color="#0033ff"><strong>POST方法</strong>可以请求服务器接收包含在请求中的实体信息，可以用于提交表单，向新闻组、BBS、邮件群组和数据库发送消息。</font><br />
<strong>SP表示空格</strong>。<br />
<strong>Request-URI遵循URI格式</strong>，在此字段为星号（*）时，说明请求并不用于某个特定的资源地址，而是用于服务器本身。<br />
<strong>HTTP-Version表示支持的HTTP版本</strong>，例如为HTTP/1.1。<br />
<strong>CRLF表示换行回车符。</strong><br />
<font color="#0000ff">请
求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域可能包含下列字段Accept、Accept-Charset、Accept-
Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-
Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、
Proxy-Authorization、Range、Referer、User-Agent。</font>对请求头域的扩展要求通讯双方都支持，如果存在不支持的请求头域，一般将会作为实体头域处理。<br />
典型的请求消息：<br />
GET<a href="http://class/download.microtool.de:80/somedata.exe" target="_blank"><font color="#003366">http://class/download.microtool.de:80/somedata.exe</font></a><br />
Host:download.microtool.de<br />
Accept:*/*<br />
Pragma:no-cache<br />
Cache-Control:no-cache<br />
Referer:<a href="http://class/download.microtool.de/" target="_blank"><font color="#003366">http://class/download.microtool.de/</font></a><br />
User-Agent:Mozilla/4.04[en](Win95;I;Nav)<br />
Range:bytes=554554-<br />
上例第一行表示HTTP客户端（可能是浏览器、下载程序）通过GET方法获得指定URL下的文件。棕色的部分表示请求头域的信息，绿色的部分表示通用头部分。<br />
<strong>Host头域</strong><br />
<font color="#0000ff">Host头域指定请求资源的Intenet主机和端口号，必须表示请求url的原始服务器或网关的位置</font>。HTTP/1.1请求必须包含主机头域，否则系统会以400状态码返回。<br />
<strong>Referer头域</strong><br />
<font color="#0033ff">Referer头域允许客户端指定请求uri的源资源地址，这可以允许服务器生成回退链表</font>，可用来登陆、优化cache等。他也允许废除的或错误的连接由于维护的目的被追踪。如果请求的uri没有自己的uri地址，Referer不能被发送。如果指定的是部分uri地址，则此地址应该是一个相对地址。<br />
<strong>Range头域</strong><br />
<font color="#0033ff">Range头域可以请求实体的一个或者多个子范围</font>。例如，<br />
表示头500个字节：bytes=0-499<br />
表示第二个500字节：bytes=500-999<br />
表示最后500个字节：bytes=-500<br />
表示500字节以后的范围：bytes=500-<br />
第一个和最后一个字节：bytes=0-0,-1<br />
同时指定几个范围：bytes=500-600,601-999<br />
但是服务器可以忽略此请求头，如果无条件GET包含Range请求头，响应会以状态码206（PartialContent）返回而不是以200（OK）。<br />
<strong>User-Agent头域</strong><br />
User-Agent头域的内容包含发出请求的用户信息。<br />
<br />
<strong>3、响应消息<br />
</strong>响应消息的第一行为下面的格式：<br />
<strong><font color="#0000ff">HTTP-Version　SP　Status-Code　SP　Reason-Phrase　CRLF</font></strong><br />
<strong>HTTP-Version表示支持的HTTP版本</strong>，例如为HTTP/1.1。<br />
<strong>Status-Code是一个三个数字的结果代码</strong>。<br />
<strong>Reason-Phrase给Status-Code提供一个简单的文本描述</strong>。Status-Code主要用于机器自动识别，Reason-Phrase主要用于帮助用户理解。<font color="#0000ff">Status-Code的第一个数字定义响应的类别，后两个数字没有分类的作用</font>。第一个数字可能取5个不同的值：<br />
1xx:信息响应类，表示接收到请求并且继续处理<br />
2xx:处理成功响应类，表示动作被成功接收、理解和接受<br />
3xx:重定向响应类，为了完成指定的动作，必须接受进一步处理<br />
4xx:客户端错误，客户请求包含语法错误或者是不能正确执行<br />
5xx:服务端错误，服务器不能正确执行一个正确的请求<br />
<font color="#0000ff">响
应头域允许服务器传递不能放在状态行的附加信息，这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、
Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW-
Authenticate。</font>对响应头域的扩展要求通讯双方都支持，如果存在不支持的响应头域，一般将会作为实体头域处理。<br />
典型的响应消息：<br />
HTTP/1.0200OK<br />
Date:Mon,31Dec200104:25:57GMT<br />
Server:Apache/1.3.14(Unix)<br />
Content-type:text/html<br />
Last-modified:Tue,17Apr200106:46:28GMT<br />
Etag:"a030f020ac7c01:1e9f"<br />
Content-length:39725426<br />
Content-range:bytes554554-40279979/40279980<br />
上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息，绿色的部分表示通用头部分，红色的部分表示实体头域的信息。<br />
<strong>Location响应头</strong><br />
<font color="#0000ff">Location响应头用于重定向接收者到一个新URI地址。</font><br />
<strong>Server响应头</strong><br />
<font color="#0000ff">Server响应头包含处理请求的原始服务器的软件信息</font>。此域能包含多个产品标识和注释，产品标识一般按照重要性排序。<br />
<strong>4、实体信息</strong><br />
请求消息和响应消息都可以包含实体信息，<strong>实体信息一般由实体头域和实体组成。</strong><font color="#0000ff">实
体头域包含关于实体的原信息，实体头包括Allow、Content-Base、Content-Encoding、Content-Language、
Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、
Etag、Expires、Last-Modified、extension-header</font>。extension-header允许客户端定义新的实体头，但是这些域可能无法未接受方识别。<font color="#0000ff">实体可以是一个经过编码的字节流，它的编码方式由Content-Encoding或Content-Type定义，它的长度由Content-Length或Content-Range定义。</font><br />
<strong>Content-Type实体头</strong><br />
<font color="#0000ff"><strong>Content-Type</strong> 实体头用于向接收方指示实体的介质类型</font>，指定HEAD方法送到接收方的实体介质类型，或GET方法发送的请求介质类型Content-Range实体头<br />
<strong>Content-Range实体头</strong><br />
<font color="#0000ff">用于指定整个实体中的一部分的插入位置，他也指示了整个实体的长度</font>。在服务器向客户返回一个部分响应，它必须描述响应覆盖的范围和整个实体长度。一般格式：<br />
<strong>Content-Range:bytes-unit　SP　first-byte-pos - last-byte-pos/entity-legth</strong><br />
例
如，传送头500个字节次字段的形式：Content-Range:bytes0-499/1234如果一个http消息包含此节（例如，对范围请求的响
应或对一系列范围的重叠请求），Content-Range表示传送的范围，Content-Length表示实际传送的字节数。<br />
<strong>Last-modified实体头</strong><br />
<font color="#0033ff">Last-modified实体头指定服务器上保存内容的最后修订时间。</font><br />
<strong>5、 HTTP 头参考（microsoft）</strong><br />
HTTP 请求和 HTTP 响应都使用头发送有关 HTTP 消息的信息。头由一系列行组成，每行都包含名称，然后依次是冒号、空格、值。字段可按任何顺序排列。某些头字段既能用于请求头也能用于响应头，而另一些头字段只能用于其中之一。 <br />
许
多请求头字段都允许客户端在值部分指定多个可接受的选项，有时甚至可以对这些选项的首选项进行排名。多个项以逗号分隔。例如，客户端可以发送包含
&#8220;Content-Encoding: gzip, compress,&#8221;的请求头，表示可以接受各种压缩类型。如果服务器的响应正文使用 gzip
编码，其响应头中将包含&#8220;Content-Encoding: gzip&#8221;。<br />
有些字段可以在单个头中出现多次。例如，头可以有多个&#8220;Warning&#8221;字段。<br />
下
表列出了 HTTP 1.1 头字段。注意：有些头字段是 MIME 字段。MIME 字段在 Internet Engineering Task
Force (IETF) 文档 RFC 2045 中进行了定义，但也可用于 HTTP 1.1 协议。有关 MIME 和 HTTP 1.1
规范的详细信息，请参阅 IEIF 页。<br />
<strong>一般头字段</strong><br />
<font color="#0033ff">一般头字段可用于请求消息和响应消息。</font><br />
<strong>　名称　　　　　　　　　　示例值 <br />
Cache-Control</strong>　 "max-age=10" <br />
<strong>Connection</strong>　　　　"close" <br />
<strong>Date</strong>　　　　　　　　　　"Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>Pragma</strong>　　　　　　　 "no-cache" <br />
<strong>Trailer</strong>　　　　　　　　 "Date" <br />
<strong>Transfer-Encoding</strong> "chunked" <br />
<strong>Upgrade</strong>　　　　　　 "SHTTP/1.3" <br />
<strong>Via</strong>　　　　　　　　　　　 "HTTP/1.1 Proxy1, HTTP/1.1 Proxy2" <br />
<strong>Warning</strong>　　　　　　　"112 Disconnected Operation" <br />
<strong>请求头字段</strong> <br />
<font color="#0000ff">请求头字段仅用于请求消息。</font><br />
<strong>　　 名称　　　　　　　　　　　　 示例值</strong> <br />
<strong>Accept</strong>　　　　　　　　　　 "text/html, image/*" <br />
<strong>Accept-Charset</strong>　　　"iso8859-5" <br />
<strong>Accept-Encoding </strong>　"gzip, compress" <br />
<strong>Accept-Language</strong>　"en, fr" <br />
<strong>Authorization</strong>　　　　 [credentials] <br />
<strong>Content-Encoding</strong>　"gzip" <br />
<strong>Expect</strong>　　　　　　　　　　 "100-continue" <br />
<strong>From</strong>　　　　　　　　　　　 "<a href="http://www.zhihere.com/bbs/mailtuser@microsoft.com" target="_blank"><font color="#003366">user@microsoft.com</font></a>" <br />
<strong>Host</strong>　　　　　　　　　　　　"<a href="http://www.microsoft.com/" target="_blank"><font color="#003366">www.microsoft.com</font></a>" <br />
<strong>If-Match</strong>　　　　　　　　　"entity_tag001" <br />
<strong>If-Modified-Since </strong>"Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>If-None-Match</strong>　　　 "entity_tag001" <br />
<strong>If-Range</strong>　　　　　　　　 "entity_tag001" or "Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>If-Unmodified-Since</strong> "Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>Max-Forwards</strong>　　　　"3" <br />
<strong>Proxy-Authorization</strong> [credentials] <br />
<strong>Range</strong>　　　　　　 "bytes=100-599" <br />
<strong>Referer</strong>　　　　　 "<a href="http://www.microsoft.com/resources.asp" target="_blank"><font color="#003366">http://www.microsoft.com/resources.asp</font></a>" <br />
<strong>TE</strong>　　　　　　　　　　"trailers" <br />
<strong>User-Agent</strong>　　 "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"</div>
<div align="left">&nbsp;</div>
<div align="left"><strong><font color="#0033ff">&gt;&gt;请求头字段的具体含义<br />
</font>Accept：</strong>浏览器可接受的MIME类型。 <br />
<strong>Accept-Charset：</strong>浏览器可接受的字符集。 <br />
<strong>Accept-Encoding：</strong>浏览器能够进行解码的数据编码方式，比如gzip。<br />
<strong>Accept-Language：</strong>浏览器所希望的语言种类，当服务器能够提供一种以上的语言版本时要用到。 <br />
<strong>Authorization</strong>：授权信息，通常出现在对服务器发送的WWW-Authenticate头的应答中。 <br />
<strong>Connection：</strong>表
示是否需要持久连接。如果Servlet看到这里的值为&#8220;Keep-Alive&#8221;，或者看到请求使用的是HTTP 1.1（HTTP
1.1默认进行持久连接），它就可以利用持久连接的优点，当页面包含多个元素时（例如Applet，图片），显著地减少下载所需要的时间。要实现这一点，
Servlet需要在应答中发送一个Content-Length头，最简单的实现方法是：先把内容写入ByteArrayOutputStream，然
后在正式写出内容之前计算它的大小。<br />
<strong>Content-Length</strong>：表示请求消息正文的长度。 <br />
<strong>Cookie</strong>：设置cookie,这是最重要的请求头信息之一<br />
<strong>From：</strong>请求发送者的email地址，由一些特殊的Web客户程序使用，浏览器不会用到它。 <br />
<strong>Host：</strong>初始URL中的主机和端口。 <br />
<strong>If-Modified-Since</strong>：只有当所请求的内容在指定的日期之后又经过修改才返回它，否则返回304&#8220;Not Modified&#8221;应答。 <br />
<strong>Pragma：</strong>指定&#8220;no-cache&#8221;值表示服务器必须返回一个刷新后的文档，即使它是代理服务器而且已经有了页面的本地拷贝。 <br />
<strong>Referer：</strong>包含一个URL，用户从该URL代表的页面出发访问当前请求的页面。 <br />
<strong>User-Agent：</strong>浏览器类型，如果Servlet返回的内容与浏览器类型有关则该值非常有用。<br />
<strong>UA-Pixels，UA-Color，UA-OS，UA-CPU：</strong>由某些版本的IE浏览器所发送的非标准的请求头，表示屏幕大小、颜色深度、操作系统和CPU类型。 <br />
<strong>响应头字段</strong> <br />
<font color="#0000ff">响应头字段仅用于响应消息。</font><br />
<strong>　 名称　　　　　　　　　 示例值</strong> <br />
<strong>Accept-Ranges</strong>　　"none" <br />
<strong>Age</strong>　　　　　　　　　　　　"2147483648(2^31)" <br />
<strong>ETag</strong>　　　　　　　　　　　"b38b9-17dd-367c5dcd" <br />
<strong>Last-Modified</strong>　　　 "Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>Location</strong>　　　　　　　　"<a href="http://localhost/redirecttarget.asp" target="_blank"><font color="#003366">http://localhost/redirecttarget.asp</font></a>" <br />
<strong>Proxy-Authenticate</strong> [challenge] <br />
<strong>Retry-After</strong>　　　　　 "Tue, 11 Jul 2000 18:23:51 GMT" or "60" <br />
<strong>Server</strong>　　　　　　　　　"Microsoft-IIS/5.0" <br />
<strong>Vary</strong>　　　　　　　　　　　 "Date" <br />
<strong>WWW-Authenticate</strong> [challenge] <br />
<strong>实体头字段</strong> <br />
<font color="#0000ff">实体头字段可以用于请求消息或响应消息。实体头字段中包含消息实体正文的有关信息，如使用的编码格式。</font><br />
名称　　　　　　　　　　　 示例值 <br />
<strong>Allow</strong>　　　　　　　　　　　　　　"GET, HEAD" <br />
<strong>Content-Encoding</strong>　　 "gzip" <br />
<strong>Content-Language</strong>　　"en" <br />
<strong>Content-Length</strong>　　　　 "8445" <br />
<strong>Content-Location</strong>　　　"<a href="http://localhost/page.asp" target="_blank"><font color="#003366">http://localhost/page.asp</font></a>" <br />
<strong>Content-MD5</strong>　　　　　　 [md5-digest] <br />
<strong>Content-Range</strong>　　　　 "bytes 2543-4532/7898" <br />
<strong>Content-Type</strong>　　　　　　"text/html" <br />
<strong>Expires</strong>　　　　　　　　　　　"Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong>Last-Modified</strong>　　　　　 "Tue, 11 Jul 2000 18:23:51 GMT" <br />
<strong><font color="#0033ff">&gt;&gt;实体头字段的具体含义</font></strong><br />
<strong>Allow </strong>服务器支持哪些请求方法（如GET、POST等）。<br />
<strong>Content-Encoding</strong>
文档的编码（Encode）方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档
的下载时间。Java的GZIPOutputStream可以很方便地进行gzip压缩，但只有Unix上的Netscape和Windows上的IE
4、IE 5才支持它。<br />
<strong>Content-Length</strong> 表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。<br />
<strong>Content-Type</strong> 表示后面的文档属于什么MIME类型。Servlet默认为text/plain，但通常需要显式地指定为text/html。<br />
<strong>Date</strong> 当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。 <br />
<strong>Expires</strong> 应该在什么时候认为文档已经过期，从而不再缓存它？ <br />
<strong>Last-Modified</strong> 文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期，该请求将被视为一个条件GET，只有改动时间迟于指定时间的文档才会返回，否则返回一个304（Not Modified）状态。<br />
<strong>Location</strong> 表示客户应当到哪里去提取文档。Location通常不是直接设置的，而是通过HttpServletResponse的sendRedirect方法，该方法同时设置状态代码为302。 <br />
<strong>Refresh </strong>表示浏览器应该在多少时间之后刷新文档，以秒计。除了刷新当前文档之外，你还可以通过setHeader("Refresh", "5; URL=http://host/path")让浏览器读取指定的页面。 <br />
注
意这种功能通常是通过设置HTML页面HEAD区的＜META. HTTP-EQUIV="Refresh"
C＞实现，这是因为，自动刷新或重定向对于那些不能使用CGI或Servlet的HTML编写者十分重要。但是，对于Servlet来说，直接设置
Refresh头更加方便。 <br />
注意Refresh的意义是&#8220;N秒之后刷新本页面或访问指定页面&#8221;，而不是&#8220;每隔N秒刷新本页面或访问指定页面
&#8221;。因此，连续刷新要求每次都发送一个Refresh头，而发送204状态代码则可以阻止浏览器继续刷新，不管是使用Refresh头还是＜META.
HTTP-EQUIV="Refresh" ...＞。 <br />
注意Refresh头不属于HTTP 1.1正式规范的一部分，而是一个扩展，但Netscape和IE都支持它。 <br />
<strong>请求头示例</strong><br />
以下是 HTTP 请求的简单示例。<br />
GET /articles/news/today.asp HTTP/1.1<br />
Accept: */*<br />
Accept-Language: en-us<br />
Connection: Keep-Alive<br />
Host: localhost<br />
Referer: <a href="http://localhost/links.asp" target="_blank"><font color="#003366">http://localhost/links.asp</font></a><br />
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)<br />
Accept-Encoding: gzip, deflate<br />
该请求具有请求行，其中包括方法 (GET)、资源路径 (/articles/news/today.asp) 和 HTTP 版本 (HTTP/1.1)。由于该请求没有正文，故所有请求行后面的内容都是头的一部分。紧接着头之后是一个空行，表示头已结束。<br />
<strong>响应头示例</strong><br />
Web 服务器可以通过多种方式响应前一个请求。假设文件是可以访问的，并且用户具有查看该文件的权限，则响应类似于：<br />
HTTP/1.1 200 OK<br />
Server: Microsoft-IIS/5.0<br />
Date: Thu, 13 Jul 2000 05:46:53 GMT<br />
Content-Length: 2291<br />
Content-Type: text/html<br />
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/<br />
Cache-control: private<br />
...<br />
响应的第一行称为状态行。它包含响应所用的 HTTP 版本、状态编码 (200) 和原因短语。示例中包含一个头，其中具有五个字段，接着是一个空行（回车和换行符），然后是响应正文的头两行。<br />
有关HTTP头完整、详细的说明，请参见<a href="http://www.w3.org/Protocols/" target="_blank"><font color="#0000ff">http://www.w3.org/Protocols/</font></a>的HTTP规范。</div>
<div align="left">&nbsp;</div>
<div align="left"><strong>附录:HTTP协议状态码的含义<br />
</strong>状态代码 状态信息 含义 <br />
<strong>100 Continue</strong> 初始的请求已经接受，客户应当继续发送请求的其余部分。（HTTP 1.1新）<br />
<strong>101 Switching Protocols</strong> 服务器将遵从客户的请求转换到另外一种协议（HTTP 1.1新<br />
<strong>200 OK</strong> 一切正常，对GET和POST请求的应答文档跟在后面。<br />
<strong>201 Created</strong> 服务器已经创建了文档，Location头给出了它的URL。<br />
<strong>202 Accepted</strong> 已经接受请求，但处理尚未完成。 <br />
<strong>203 Non-Authoritative Information</strong> 文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝（HTTP 1.1新）。 <br />
<strong>204 No Content</strong> 没有新文档，浏览器应该继续显示原来的文档。<br />
<strong>205 Reset Content</strong> 没有新的内容，但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容（HTTP 1.1新）。 <br />
<strong>206 Partial Content</strong> 客户发送了一个带有Range头的GET请求，服务器完成了它（HTTP 1.1新）。 <br />
<strong>300 Multiple Choices</strong> 客户请求的文档可以在多个位置找到，这些位置已经在返回的文档内列出。如果服务器要提出优先选择，则应该在Location应答头指明。 <br />
<strong>301 Moved Permanently</strong> 客户请求的文档在其他地方，新的URL在Location头中给出，浏览器应该自动地访问新的URL。 <br />
<strong>302 Found</strong>
类似于301，但新的URL应该被视为临时性的替代，而不是永久性的。注意，在HTTP1.0中对应的状态信息是&#8220;Moved
Temporatily&#8221;，出现该状态代码时，浏览器能够自动访问新的URL，因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使
用。例如，如果浏览器错误地请求<a href="http://host/%7Euser" target="_blank"><font color="#003366">http://host/~user</font></a>（缺少了后面的斜杠），有的服务器返回301，有的则返回302。严格地说，我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。 <br />
<strong>303 See Other</strong> 类似于301/302，不同之处在于，如果原来的请求是POST，Location头指定的重定向目标文档应该通过GET提取（HTTP 1.1新）。 <br />
<strong>304 Not Modified</strong> 客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。<br />
<strong>305 Use Proxy</strong> 客户请求的文档应该通过Location头所指明的代理服务器提取（HTTP 1.1新）。<br />
<strong>307 Temporary Redirect</strong>
和302（Found）相同。许多浏览器会错误地响应302应答进行重定向，即使原来的请求是POST，即使它实际上只能在POST请求的应答是303时
才能重定向。由于这个原因，HTTP
1.1新增了307，以便更加清除地区分几个状态代码：当出现303应答时，浏览器可以跟随重定向的GET和POST请求；如果是307应答，则浏览器只
能跟随对GET请求的重定向。（HTTP 1.1新） <br />
<strong>400 Bad Request</strong> 请求出现语法错误。 <br />
<strong>401 Unauthorized</strong> 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头，浏览器据此显示用户名字/密码对话框，然后在填写合适的Authorization头后再次发出请求。 <br />
<strong>403 Forbidden</strong> 资源不可用。服务器理解客户的请求，但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。 <br />
<strong>404 Not Found</strong> 无法找到指定位置的资源。这也是一个常用的应答， <br />
<strong>405 Method Not Allowed</strong> 请求方法（GET、POST、HEAD、DELETE、PUT、TRACE等）对指定的资源不适用。（HTTP 1.1新） <br />
<strong>406 Not Acceptable</strong> 指定的资源已经找到，但它的MIME类型和客户在Accpet头中所指定的不兼容（HTTP 1.1新）。 <br />
<strong>407 Proxy Authentication Required</strong> 类似于401，表示客户必须先经过代理服务器的授权。（HTTP 1.1新）<br />
<strong>408 Request Timeout</strong> 在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。（HTTP 1.1新） <br />
<strong>409 Conflict</strong> 通常和PUT请求有关。由于请求和资源的当前状态相冲突，因此请求不能成功。（HTTP 1.1新）<br />
<strong>410 Gone</strong> 所请求的文档已经不再可用，而且服务器不知道应该重定向到哪一个地址。它和404的不同在于，返回407表示文档永久地离开了指定的位置，而404表示由于未知的原因文档不可用。（HTTP 1.1新）<br />
<strong>411 Length Required</strong> 服务器不能处理请求，除非客户发送一个Content-Length头。（HTTP 1.1新）<br />
<strong>412 Precondition Failed</strong> 请求头中指定的一些前提条件失败（HTTP 1.1新）。 <br />
<strong>413 Request Entity Too Large</strong> 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求，则应该提供一个Retry-After头（HTTP 1.1新）。 <br />
<strong>414 Request URI Too Long</strong> URI太长（HTTP 1.1新）。 <br />
<strong>416 Requested Range Not Satisfiable</strong> 服务器不能满足客户在请求中指定的Range头。（HTTP 1.1新） <br />
<strong>500 Internal Server Error</strong> 服务器遇到了意料不到的情况，不能完成客户的请求。 <br />
<strong>501 Not Implemented</strong> 服务器不支持实现请求所需要的功能。例如，客户发出了一个服务器不支持的PUT请求。<br />
<strong>502 Bad Gateway</strong> 服务器作为网关或者代理时，为了完成请求访问下一个服务器，但该服务器返回了非法的应答。 <br />
<strong>503 Service Unavailable</strong> 服务器由于维护或者负载过重未能应答。<br />
<strong>504 Gateway Timeout</strong> 由作为代理或网关的服务器使用，表示不能及时地从远程服务器获得应答。（HTTP 1.1新） <br />
<strong>505 HTTP Version Not Supported</strong> 服务器不支持请求中所指明的HTTP版本</div>
<img src ="http://www.blogjava.net/lvq810/aggbug/210181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-06-23 22:48 <a href="http://www.blogjava.net/lvq810/articles/210181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTP协议及其请求头分析</title><link>http://www.blogjava.net/lvq810/articles/210180.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Mon, 23 Jun 2008 14:47:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/210180.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/210180.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/210180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/210180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/210180.html</trackback:ping><description><![CDATA[HTTP协议及其请求头分析<span style="display: none;"> vE;TYm/ </span>&nbsp;<br />
<span style="display: none;"> 73\='AJ </span>&nbsp;<br />
众所周知，Internet的基本协议是TCP/IP协议，目前广泛采用的FTP、Archie Gopher等是建立在TCP/IP协议之上的应用层协议，不同的协议对应着不同的应用。<span style="display: none;"> 7nf;&gt;	O </span>&nbsp;<br />
<span style="display: none;"> &gt;a|,- </span>&nbsp;<br />
WWW服务器使用的主要协议是HTTP协议，即超文体传输协议。由于HTTP协议支持的服务不限于WWW，还可以是其它服务，因而HTTP协议允许用
户在统一的界面下，采用不同的协议访问不同的服务，如FTP、Archie、SMTP、NNTP等。另外，HTTP协议还可用于名字服务器和分布式对象管
理。<span style="display: none;"> F-|&lt;K&amp;j1A </span>&nbsp;<br />
<span style="display: none;"> #e~{$d!(4. </span>&nbsp;<br />
HTTP的早期版本为HTTP/0.9，它适用于各种数据信息的简洁快速协议，但是其远不能满足日益发展各种应用的需要。但HTTP/0.9作为HTTP
协议具有典型的无状态性：每个事务都是独立进行处理的，当一个事务开始就在客户与服务器之间建立一个连接，当事务结束时就释放这个连接。HTTP/0.9
包含Simple-Request&amp;Simple-Responsed的报文结构。但是客户无法使用内容协商，所以服务器也无法返回实体的媒体类
型。 <span style="display: none;"> &amp;|W_h/; </span>&nbsp;<br />
<span style="display: none;"> AE)k}?PL </span>&nbsp;<br />
1982年，Tim
Berners-Lee提出了HTTP/1.0，在此后的不断丰富和发展中，HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响
应，建立并拆除一次连接。其特点是简单、易于管理，所以它符合了大家的需要，得到了广泛的应用。其缺点是仍会发生下列问题：对用户请求响应慢、网络拥塞严
重、安全性等。 <span style="display: none;"> 13r{ ']Hf </span>&nbsp;<br />
<span style="display: none;"> fhbrKF` </span>&nbsp;<br />
1997年形成的HTTP/1.1，也就是现在普遍使用的协议，在持续连接操作机制中实现流水方式，即客户端需要对同一服务器发出多个请求时，其实现
在多数的网页都是有多部分组成（比如多张图片），可用流水线方式加快速度，流水机制就是指连续发出多个请求并等到这些请求发送完毕，再等待响应。这样就大
大节省了单独请求对响应的等待时间，使我们得到更快速的浏览。 <span style="display: none;"> qmhFr-[Y&gt; </span>&nbsp;<br />
<span style="display: none;"> s{(^xD^ </span>&nbsp;<br />
另外，HTTP/1.1服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。当然，服务器端在发生连接中断时，会自动的重传请求，保证数据的完整性。 <span style="display: none;"> FJ|~h	5.S&gt; </span>&nbsp;<br />
<span style="display: none;"> fJ;NlB!�u </span>&nbsp;<br />
HTTP/1.1还提供了身份认证、状态管理和Cache缓存等机制。这里，我想特别提一下关于HTTP/1.1中的Cache缓存机制对HTTP
/1.0的不足之处的改进，它严格全面，既可以减少时间延迟、又节省了带宽。HTTP/1.1采用了内容协商机制，选择最合适的用户的内容表现形式。 <span style="display: none;"> w+;	c#VH"w </span>&nbsp;<br />
<span style="display: none;"> d
%%m'� </span>&nbsp;<br />
2.1　HTTP协议简介<span style="display: none;"> t9h0^ </span>&nbsp;<br />
<span style="display: none;"> h�+&gt;J3X </span>&nbsp;<br />
HTTP是一个属于应用层的面向对象的协议，由于其简捷、快速的方式，适用于分布式超媒体信息系统。它于1990年提出，经过几年的使用与发展，得到
不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版，HTTP/1.1的规范化工作正在进行之中，而且HTTP-NG(Next
Generation of HTTP)的建议已经提出。<span style="display: none;"> py:Jx0�i9 </span>&nbsp;<br />
<span style="display: none;"> W @sQ[h </span>&nbsp;<br />
HTTP协议的主要特点可概括如下：<span style="display: none;"> &gt;]{5jDeEw </span>&nbsp;<br />
<span style="display: none;"> |Uz8K�:F </span>&nbsp;<br />
1.支持客户/服务器模式。<span style="display: none;"> ^tn%3K&lt;x </span>&nbsp;<br />
2.简单快速：客户向服务器请求服务时，只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。<span style="display: none;"> $#f5l,` </span>&nbsp;<br />
由于HTTP协议简单，使得HTTP服务器的程序规模小，因而通信速度很快。<span style="display: none;"> )�du3^ </span>&nbsp;<br />
3.灵活：HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。<span style="display: none;"> G'o$mSOi) </span>&nbsp;<br />
4.无连接：无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求，并收到客户的应答后，即断开连接。采用这种方式可以节省传输时间。<span style="display: none;"> #g?�'| </span>&nbsp;<br />
5.无状态：HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息，则它必须重传，这样可能导致每次连接传送的数据量增大。另一方面，在服务器不需要先前信息时它的应答就较快。<span style="display: none;"> R#b6\o~) </span>&nbsp;<br />
<span style="display: none;"> DbN!
41]J </span>&nbsp;<br />
2.2　HTTP协议的几个重要概念<span style="display: none;"> }W'=XEE </span>&nbsp;<br />
<span style="display: none;"> vIqxI2(E) </span>&nbsp;<br />
1.连接(Connection)：一个传输层的实际环流，它是建立在两个相互通讯的应用程序之间。<span style="display: none;"> ah}Nu}tl&lt; </span>&nbsp;<br />
2.消息(Message)：HTTP通讯的基本单位，包括一个结构化的八元组序列并通过连接传输。<span style="display: none;"> om&amp;oq&gt;3Qe@ </span>&nbsp;<br />
3.请求(Request)：一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号<span style="display: none;"> 6}G6S$M{ </span>&nbsp;<br />
4.响应(Response)：一个从服务器返回的信息包括HTTP协议的版本号、请求的状态(例如"成功"或"没找到")和文档的MIME类型。<span style="display: none;">
S+Wne* n </span>&nbsp;<br />
5.资源(Resource)：由URI标识的网络数据对象或服务。<span style="display: none;"> c.(t.4*t]: </span>&nbsp;<br />
6.实体(Entity)：数据资源或来自服务资源的回映的一种特殊表示方法，它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体的本身内容。<span style="display: none;"> Ro4iT+1 </span>&nbsp;<br />
7.客户机(Client)：一个为发送请求目的而建立连接的应用程序。<span style="display: none;"> !=dO�d G </span>&nbsp;<br />
8.用户代理(User agent)：初始化一个请求的客户机。它们是浏览器、编辑器或其它用户工具。<span style="display: none;"> :X
/r </span>&nbsp;<br />
9.服务器(Server)：一个接受连接并对请求返回信息的应用程序。<span style="display: none;">  qH@.@(} </span>&nbsp;<br />
10.源服务器(Origin server)：是一个给定资源可以在其上驻留或被创建的服务器。<span style="display: none;"> XvFyzuS </span>&nbsp;<br />
11.代理(Proxy)：一个中间程序，它可以充当一个服务器，也可以充当一个客户机，为其它客户机建立请求。请求是通过可能的翻译在内部或经过传递到其它的服务器中。一个代理在发送请求信息之前，必须解释并且如果可能重写它。<span style="display: none;"> O:xXZ/]&amp; </span>&nbsp;<br />
代理经常作为通过防火墙的客户机端的门户，代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成的请求。<span style="display: none;"> 9Yzi4O* </span>&nbsp;<br />
12.网关(Gateway)：一个作为其它服务器中间媒介的服务器。与代理不同的是，网关接受请求就好象对被请求的资源来说它就是源服务器；发出请求的客户机并没有意识到它在同网关打交道。<span style="display: none;"> !E$J,,TFk </span>&nbsp;<br />
网关经常作为通过防火墙的服务器端的门户，网关还可以作为一个协议翻译器以便存取那些存储在非HTTP系统中的资源。<span style="display: none;"> 
){NwD5  </span>&nbsp;<br />
13.通道(Tunnel)：是作为两个连接中继的中介程序。一旦激活，通道便被认为不属于HTTP通讯，尽管通道可能是被一个HTTP请求初始化
的。当被中继的连接两端关闭时，通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时通道被经常使
用。<span style="display: none;"> l	U:z8gX
</span>&nbsp;<br />
14.缓存(Cache)：反应信息的局域存储。<span style="display: none;"> xCT5|=Uz </span>&nbsp;<br />
<span style="display: none;"> r^aD�kJ </span>&nbsp;<br />
2.3　HTTP协议的运作方式<span style="display: none;"> n}
dls </span>&nbsp;<br />
<span style="display: none;"> JFB:HCq_g </span>&nbsp;<br />
HTTP协议是基于请求／响应范式的。一个客户机与服务器建立连接后，发送一个请求给服务器，请求方式的格式为，统一资源标识符、协议版本号，后边是
MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后，给予相应的响应信息，其格式为一个状态行包括信息的协议版本号、一个成功或错误
的代码，后边是MIME信息包括服务器信息、实体信息和可能的内容。<span style="display: none;"> &lt;fy=1k
6h </span>&nbsp;<br />
<span style="display: none;"> GP+CdYE </span>&nbsp;<br />
许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成(见图2-1)。<span style="display: none;"> O~Dt%)!7Sv </span>&nbsp;<br />
<span style="display: none;"> G}h&lt;7nf4 </span>&nbsp;<br />
图2-1<span style="display: none;"> eK{pScTsT\ </span>&nbsp;<br />
<span style="display: none;"> S%gB6sO\o </span>&nbsp;<br />
当一个或多个中介出现在请求／响应链中时，情况就变得复杂一些。中介由三种：代理(Proxy)、网关(Gateway)和通道(Tunnel)。一
个代理根据URI(Uniform Resource
Identifier)的绝对格式来接受请求，重写全部或部分消息，通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理，作为一些其它
服务器的上层，并且如果必须的话，可以把请求翻译给下层的服务器协议。一个通道作为不改变消息的两个连接之间的中继点。当通讯需要通过一个中介(例如：防
火墙等)或者是中介不能识别消息的内容时，通道经常被使用。 <span style="display: none;"> M
\#qgo </span>&nbsp;<br />
<span style="display: none;"> {z
[ptl==x </span>&nbsp;<br />
图2-2<span style="display: none;"> !lMq3nz\q </span>&nbsp;<br />
<span style="display: none;"> E*v-1g| </span>&nbsp;<br />
上面的图2-2表明了在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。一个通过整个链的请求或响应消息必须经过四个连接段。这个区
别是重要的，因为一些HTTP通讯选择可能应用于最近的连接、没有通道的邻居，应用于链的终点或应用于沿链的所有连接。尽管图2-2是线性的，每个参与者
都可能从事多重的、并发的通讯。例如，B可能从许多客户机接收请求而不通过A，并且／或者不通过C把请求送到A，在同时它还可能处理A的请求。<span style="display: none;"> -P!U#uh </span>&nbsp;<br />
<span style="display: none;"> Ofl:OW </span>&nbsp;<br />
任何针对不作为通道的汇聚可能为处理请求启用一个内部缓存。缓存的效果是请求／响应链被缩短，条件是沿链的参与者之一具有一个缓存的响应作用于那个请求。下图说明结果链，其条件是针对一个未被UA或A加缓存的请求，B有一个经过C来自O的一个前期响应的缓存拷贝。<span style="display: none;"> kE_k;U\,jF </span>&nbsp;<br />
<span style="display: none;"> ~HbvCXC </span>&nbsp;<br />
图2-3<span style="display: none;"> b&amp;aLxu9~ </span>&nbsp;<br />
<span style="display: none;"> pNG{gpp4= </span>&nbsp;<br />
在Internet上，HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80，但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。<span style="display: none;"> %:NdB </span>&nbsp;<br />
<span style="display: none;"> Q.
Ajev </span>&nbsp;<br />
以上简要介绍了HTTP协议的宏观运作方式，下面介绍一下HTTP协议的内部操作过程。<span style="display: none;"> )*Nuy*\ </span>&nbsp;<br />
<span style="display: none;"> JQ0tjSv </span>&nbsp;<br />
首先，简单介绍基于HTTP协议的客户/服务器模式的信息交换过程，如图2-4所示，它分四个过程，建立连接、发送请求信息、发送响应信息、关闭连接。<span style="display: none;"> -JG&gt;b.9( </span>&nbsp;<br />
<span style="display: none;"> i]"WMI�{y </span>&nbsp;<br />
图2-4<span style="display: none;"> 5]{vIB </span>&nbsp;<br />
<span style="display: none;"> giW*y0| </span>&nbsp;<br />
在WWW中，"客户"与"服务器"是一个相对的概念，只存在于一个特定的连接期间，即在某个连接中的客户在另一个连接中可能作为服务器。WWW服务器运行时，一直在TCP80端口(WWW的缺省端口)监听，等待连接的出现。<span style="display: none;"> $T4N d)S0 </span>&nbsp;<br />
<span style="display: none;"> -SI0nHz </span>&nbsp;<br />
下面，讨论HTTP协议下客户/服务器模式中信息交换的实现。 　　<span style="display: none;"> *D;SvR~~ </span>&nbsp;<br />
<span style="display: none;"> ,
1,&gt;'Tz </span>&nbsp;<br />
1.建立连接 <span style="display: none;"> [H]PO\E </span>&nbsp;<br />
连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上，如果成功，就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。<span style="display: none;"> m+RT`9?( </span>&nbsp;<br />
<span style="display: none;"> hV[6~i". </span>&nbsp;<br />
2.发送请求<span style="display: none;"> 2C(vj!/D% </span>&nbsp;<br />
打开一个连接后，客户机把请求消息送到服务器的停留端口上，完成提出请求动作。<span style="display: none;"> }Yv1I74^% </span>&nbsp;<br />
HTTP/1.0　　请求消息的格式为：<span style="display: none;"> !cNrK.wI </span>&nbsp;<br />
请求消息=请求行(通用信息|请求头|实体头) CRLF[实体内容]<span style="display: none;"> d kWc&gt;($ </span>&nbsp;<br />
请求行=方法　请求URL　HTTP版本号　CRLF<span style="display: none;"> pW5B�!\
</span>&nbsp;<br />
方法=GET|HEAD|POST|扩展方法<span style="display: none;"> {Ax*1? </span>&nbsp;<br />
URL=协议名称+宿主名+目录与文件名<span style="display: none;"> p5)PYBEa; </span>&nbsp;<br />
请求行中的方法描述指定资源中应该执行的动作，常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的，对应关系如下：<span style="display: none;"> 'a&gt;;gtj </span>&nbsp;<br />
对象　　　　　　GET的结果<span style="display: none;"> (E,c3R"C </span>&nbsp;<br />
文件　　　　　　文件的内容<span style="display: none;"> }4[6 y+o </span>&nbsp;<br />
程序　　　　　　该程序的执行结果<span style="display: none;"> &gt;(GRb!XT </span>&nbsp;<br />
数据库查询　　　查询结果<span style="display: none;"> ,Nz\1 </span>&nbsp;<br />
HEAD--要求服务器查找某对象的元信息，而不是对象本身。<span style="display: none;"> tdJCF$2) </span>&nbsp;<br />
POST--从客户机向服务器传送数据，在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容，让CGI程序处理。<span style="display: none;"> }&amp;b + </span>&nbsp;<br />
一个请求的例子为：<span style="display: none;"> u\0&lt;-R
K </span>&nbsp;<br />
GET <a href="http://networking.zju.edu.cn/zju/index.htm" target="_blank">http://networking.zju.edu.cn/zju/index.htm</a> HTTP/1.0<span style="display: none;">  $[($j10 </span>&nbsp;<br />
头信息又称为元信息，即信息的信息，利用元信息可以实现有条件的请求或应答 。<span style="display: none;"> D&gt;{q2u= </span>&nbsp;<br />
请求头--告诉服务器怎样解释本次请求，主要包括用户可以接受的数据类型、压缩方法和语言等。<span style="display: none;"> 	LVTPZ </span>&nbsp;<br />
实体头--实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。<span style="display: none;"> D;~p#{. </span>&nbsp;<br />
实体--请求或应答对象本身。<span style="display: none;"> VI7G+q9+ </span>&nbsp;<br />
<span style="display: none;"> 1y25vcl </span>&nbsp;<br />
3.发送响应<span style="display: none;"> d$n?]#wd </span>&nbsp;<br />
服务器在处理完客户的请求之后，要向客户机发送响应消息。<span style="display: none;"> =jvA55�2; </span>&nbsp;<br />
HTTP/1.0的响应消息格式如下：<span style="display: none;"> 9SJ/2} </span>&nbsp;<br />
响应消息=状态行(通用信息头|响应头|实体头)　CRLF　〔实体内容〕<span style="display: none;"> 	jAN}7"0 </span>&nbsp;<br />
状 态 行=HTTP版本号　状态码　原因叙述<span style="display: none;"> &amp;'C&gt;$,0K$ </span>&nbsp;<br />
状态码表示响应类型<span style="display: none;"> zs91(@YIu </span>&nbsp;<br />
1&#215;&#215;　　保留<span style="display: none;"> b
!x: </span>&nbsp;<br />
2&#215;&#215;　　表示请求成功地接收<span style="display: none;"> )jM
q:M </span>&nbsp;<br />
3&#215;&#215;　　为完成请求客户需进一步细化请求<span style="display: none;"> nWA3I&lt; </span>&nbsp;<br />
4&#215;&#215;　　客户错误<span style="display: none;"> oCAp3~a </span>&nbsp;<br />
5&#215;&#215;　　服务器错误 <span style="display: none;"> kaxl,2 </span>&nbsp;<br />
响应头的信息包括：服务程序名，通知客户请求的URL需要认证，请求的资源何时能使用。<span style="display: none;"> ~e$	P. </span>&nbsp;<br />
<span style="display: none;"> Vf2tJY </span>&nbsp;<br />
4.关闭连接<span style="display: none;"> 82Eog} </span>&nbsp;<br />
客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话<span style="display: none;"> #bb[[zrKJ </span>&nbsp;<br />
<span style="display: none;"> %NEsWam` </span>&nbsp;<br />
二．http协议请求头格式分析<span style="display: none;"> No&amp;G=Fo2 </span>&nbsp;<br />
<span style="display: none;"> yyTF\2r </span>&nbsp;<br />
http协议的请求头分为10个部分。<span style="display: none;"> D\!Rg3Y4 </span>&nbsp;<br />
<span style="display: none;"> $Aic/|MZL </span>&nbsp;<br />
1.From:<span style="display: none;"> #w(uX </span>&nbsp;<br />
以internet邮件的形式，这一字段给出了正在请求的用户的名字。这一字段也许被用来登陆和一种存取保护的不安全形式。这一字段的解释是代表被给定用户的要求正在被执行，这个用户接受被执行方法的回应。<span style="display: none;"> R.uuuu`  </span>&nbsp;<br />
这一字段里的因特网邮件地址并非一定要对发出请求的主机回应.例如，当一个请求正通过一个网关时，开始的发布者的地址应该被使用。<span style="display: none;"> H1I]v `w, </span>&nbsp;<br />
假如能的话，邮件地址应该时一个有效的邮件地址而不管它实际上是否是一个internet邮件地址。<span style="display: none;"> b+r\P{Lj:p </span>&nbsp;<br />
<span style="display: none;"> DgaK|vkH </span>&nbsp;<br />
2.Accept:<span style="display: none;"> \A2op?{ </span>&nbsp;<br />
这一字段包含了一个分隔的请求方案列表，它将在这个请求的回应中被接受。这一字段可能会根据RCFC822被包装成几行，并且这个字段不仅仅一次的发生也是被接受的，好像所有的入口已经在一个域种了。列表中每个入口的模式如下：<span style="display: none;"> #tTxEZq&lt; </span>&nbsp;<br />
&lt;field&gt;  = &nbsp;  Accept: &lt;entry&gt; *[ , &lt;entry&gt; ]<span style="display: none;"> [J%u-$)# </span>&nbsp;<br />
&lt;entry&gt;  = &nbsp;  &lt;content type&gt; *[ ; &lt;param&gt; ]<span style="display: none;"> FW1(|
s </span>&nbsp;<br />
&lt;param&gt;  = &nbsp;  &lt;attr&gt; = &lt;float&gt;<span style="display: none;"> DLRMq)`, </span>&nbsp;<br />
&lt;attr&gt; &nbsp; = &nbsp;  q / mxs / mxb<span style="display: none;"> &gt;�DzFFON- </span>&nbsp;<br />
&lt;float&gt;  = &nbsp;  &lt;ANSI-C floating point text represntation&gt;<span style="display: none;"> uKfRMh </span>&nbsp;<br />
注意在上述语法中分号的优先级高于逗号，这是为了符合多用途的忘记邮件扩充协议。<span style="display: none;"> }KYAf5 </span>&nbsp;<br />
记入没有Accept字段出现，那么假定无格式正文和html正文被接受。<span style="display: none;"> D@	3i`q- </span>&nbsp;<br />
Example<span style="display: none;"> f)P&lt;n;&gt;q </span>&nbsp;<br />
Accept: text/plain, text/html<span style="display: none;">
LDf*m
 </span>&nbsp;<br />
Accept: text/x-dvi; q=.8; mxb=100000; mxt=5.0, text/x-c<span style="display: none;"> ;"lpX-\ </span>&nbsp;<br />
为了节省时间，并且也允许客户接受他们可能不会意识到的content type一个星号也许被使用在下面的地方，either the
second half of the content-type value, or both
halves。这仅仅被应用于Accept，而且不是对于content-type field of course的。<span style="display: none;"> [F}l~Ac </span>&nbsp;<br />
Example<span style="display: none;"> )]4Q%aO2= </span>&nbsp;<br />
Accept:  *.*, q=0.1<span style="display: none;"> cU/vDY B </span>&nbsp;<br />
Accept:  audio/*, q=0.2<span style="display: none;"> F*&gt;�bn </span>&nbsp;<br />
Accept:  audio/basic q=1<span style="display: none;"> XS&gt;l+WJ </span>&nbsp;<br />
上面的例子可以这样解释：假如你有基本音频，那么传送它，否则传送给我一些其他的声音，或者不能那样作，那么仅仅给我你所得到的。<span style="display: none;"> 4X7gc$DZ� </span>&nbsp;<br />
Type parameters<span style="display: none;"> $4	wDB/ </span>&nbsp;<br />
&nbsp; 在（content
type）中参数对于描述决议，颜色深度等等是特别重要的。他们将允许一个客户来在Accept字段中指定它的设备的决议。这也许允许server在传输
时通过减少一个图片的resultion来大大的节约。并且使一个更适合的用户时间的黑白图象被选中而不是给客户一个彩色图片来转换成单色的。<span style="display: none;"> C\P#.0yH </span>&nbsp;<br />
These parameters are to be specified when types are registered.. @@
TBS.Sugestions include the following. Please feed back any references
to existing improved abbreviations for these:<span style="display: none;"> evw4rr(?K </span>&nbsp;<br />
下面这些参数是当类型被注册时而被具体详细说明的。<span style="display: none;"> "RawKOu[y </span>&nbsp;<br />
&nbsp;  Dpi<span style="display: none;"> ZO7a#&amp;}i </span>&nbsp;<br />
&nbsp;  Dots per inch: pixels per inch [cm?!] <span style="display: none;"> j)ga[ </span>&nbsp;<br />
&nbsp;  pxmax <span style="display: none;"> n$vWEhZZ </span>&nbsp;<br />
&nbsp;  Maximum width in pixels (image or video) <span style="display: none;"> byOQ&gt;] </span>&nbsp;<br />
&nbsp;  pymax <span style="display: none;"> E7aD:WG^ </span>&nbsp;<br />
&nbsp;  Maximum height in pixels <span style="display: none;"> GY`G�A </span>&nbsp;<br />
&nbsp;  bits <span style="display: none;"> B&lt;$Tp4W(Tx </span>&nbsp;<br />
&nbsp;  Bits per sample (sound) or pixels (graphics) <span style="display: none;"> 6Cen#F6u </span>&nbsp;<br />
&nbsp;  mchrome <span style="display: none;"> =/!d8vi" </span>&nbsp;<br />
&nbsp;  Grayscale or black and white (no value) <span style="display: none;"> K~qEz;o </span>&nbsp;<br />
&nbsp;  sps <span style="display: none;"> Mdi-*R~ </span>&nbsp;<br />
&nbsp;  Samples (sound) or frames (video) per second <span style="display: none;"> &lt;zi&gt;[6"j7o </span>&nbsp;<br />
&nbsp;  Length <span style="display: none;">
W	S=&lt; </span>&nbsp;<br />
&nbsp;  Total size of object in bytes [bits?] <span style="display: none;"> SM&amp;$Li('U </span>&nbsp;<br />
<span style="display: none;"> G
uK{qeA </span>&nbsp;<br />
3.Accept-Encoding:<span style="display: none;"> f
39w </span>&nbsp;<br />
和Accept一样，但是仅列出了在响应中是可接受的Content-Encoding types<span style="display: none;"> `)e+:K,/M </span>&nbsp;<br />
&lt;field&gt;  = &nbsp;  Accept-Encoding: &lt;entry&gt; *[ , &lt;entry&gt; ]<span style="display: none;"> &gt;$w2k|F </span>&nbsp;<br />
&lt;entry&gt;  = &nbsp;  &lt;content transfer encoding&gt; *[ , &lt;param&gt; ]<span style="display: none;"> Dg(lX,&amp;1} </span>&nbsp;<br />
Example：<span style="display: none;"> P
VgQI" </span>&nbsp;<br />
Accept-Encoding: x-compress; x-zip<span style="display: none;"> Xuf0T$c </span>&nbsp;<br />
<span style="display: none;"> qHEetg&lt;0 </span>&nbsp;<br />
4。Accept-Language:<span style="display: none;"> igT  LH3Jt </span>&nbsp;<br />
和Accept一样但是列出了在响应中更好的Language values。在一个未详细说明的语言中一个响应不是非法的。<span style="display: none;"> TPK,#Hm </span>&nbsp;<br />
<span style="display: none;"> &lt;W�ijp\| </span>&nbsp;<br />
5．User-Agent：<span style="display: none;"> 3Nh]xS/k5 </span>&nbsp;<br />
假如存在的话，这一行给出了被原始用户使用的软件程序。这是为了统计和protocol violations的追踪而给出的。第一个白色空格划定了单词必须是软件产品名有一个可选的斜线和版本说明。其他形成了用户代理的部分产品也许被作为分开的单词被安排。<span style="display: none;"> 6mj%�| </span>&nbsp;<br />
&lt;field&gt; &nbsp; = &nbsp; User-Agent: &lt;product&gt;+<span style="display: none;"> t~-#%g&gt;! </span>&nbsp;<br />
&lt;product&gt; = &nbsp; &lt;word&gt; [/&lt;version&gt;]<span style="display: none;"> .]0HNU@D </span>&nbsp;<br />
&lt;version&gt; = &nbsp; &lt;word&gt;<span style="display: none;"> |	\Jff�fv </span>&nbsp;<br />
Example:<span style="display: none;"> x/dpf&lt;qA </span>&nbsp;<br />
User-Agent:  LII-Cello/1.0  libwww/2.5<span style="display: none;"> &amp;$�t=k# </span>&nbsp;<br />
<span style="display: none;"> \B:OY$fR </span>&nbsp;<br />
6．Referer:<span style="display: none;"> &gt;
7j[,[9v </span>&nbsp;<br />
这个可选的header field允许客户详细说明，为了server的好处，文档的地址或者文档中的元素，URI通过文档的地址或者文档中的元素在请求中被获得。<span style="display: none;"> Rg{&lt;=nP	 </span>&nbsp;<br />
这允许一个服务器来产生向后对文档的链接，它允许坏链接为了维护而被跟踪。<span style="display: none;"> bP~^89bv~ </span>&nbsp;<br />
假如一个部分的URI被给出那么它应该被解析到相应的请求对象的URI。<span style="display: none;"> i0ZBx#'TN </span>&nbsp;<br />
Example:<span style="display: none;">  7@gT" </span>&nbsp;<br />
Referer: <a href="http://www.w3.org/hypertext/DataSources/Overview.html" target="_blank">http://www.w3.org/hypertext/DataSources/Overview.html</a><span style="display: none;">
�7%k|T# </span>&nbsp;<br />
<span style="display: none;"> m?8e&lt;Z </span>&nbsp;<br />
7．Authorization:<span style="display: none;"> U8 9( </span>&nbsp;<br />
假如这一行存在的话它包含了授权信息。格式也是被指定的。这一字段的格式是在可扩展的形式。第一个单词是一个使用中的被授权的系统的规范。<span style="display: none;"> mveJfL'*J </span>&nbsp;<br />
Basic<span style="display: none;"> 2{PmtN0 </span>&nbsp;<br />
Specification for current one implemented by AL Sep 1993.<span style="display: none;"> D#�ol/3 </span>&nbsp;<br />
&nbsp;  PGP/PEM Encryption（pgp/增强的加密电子邮件 密码术）<span style="display: none;"> i:z*%iTcE </span>&nbsp;<br />
&nbsp;  People at NCSA are designing a PGP/PEM based protection system.<span style="display: none;"> O]x&lt;G~ </span>&nbsp;<br />
&nbsp;  User/Password scheme<span style="display: none;"> `{"R�oam </span>&nbsp;<br />
&nbsp;  Authorization:  user  fred:mypassword<span style="display: none;"> iS@y7i&amp;k0 </span>&nbsp;<br />
&nbsp;  设计名是"user"。第二个单词是一个用户名，有一个被冒号分开的可选的密码，就好像在ftp的URL语法一样。没有密码的话这提供了一个非常低级的安全保证，有了密码，它提供了一个低级安全保证作为未定义的FTP,Telnet等等。<span style="display: none;"> ayO8X[ </span>&nbsp;<br />
&nbsp;  Koreros<span style="display: none;"> SOu56'kh6z </span>&nbsp;<br />
&nbsp;  Authorization:  kerberos  kerberos authentications parameters<span style="display: none;"> pmQvKlN </span>&nbsp;<br />
&nbsp;  Kerberos的确认参数格式被具体指定。<span style="display: none;"> ,\#oSr^M </span>&nbsp;<br />
<span style="display: none;"> r!{L{fP� </span>&nbsp;<br />
&nbsp;  8．ChargeTo:<span style="display: none;"> %\:-!9Jqp) </span>&nbsp;<br />
&nbsp;  假如这一行存在地话，它包括了被请求的方法的程序的帐户信息。格式是TBS<span style="display: none;"> 9{u(hx.G&gt;n </span>&nbsp;<br />
&nbsp;  （To Be Specified）这个字段的格式必须是在扩展模式的。第一个单词以一个namespaces的说明开始。这和扩展URLㄒ搴芟瘛５鼻懊挥衝amespaces被定义。Namespaces见被随着注册确认而注册。<span style="display: none;"> ~Z0_KIVv </span>&nbsp;<br />
&nbsp;  这行的其余部分的格式是一个系统有关的函数但是它被推荐这包含了一个被用户确认得本次事务的最大花费和一个花费单元。<span style="display: none;"> $FqzE7adO </span>&nbsp;<br />
&nbsp;  If-Modified-Since: date<span style="display: none;">
X+P
YW </span>&nbsp;<br />
&nbsp;  这个请求头被随着get方法使用使之有条件。假如请求文档直到被定义还没改变得花那么文档不会被发送，但是会有一个Not Modified 304 回应。<span style="display: none;"> H=uPqUMs </span>&nbsp;<br />
&nbsp;  这个字段的格式和日期的一样。<span style="display: none;"> 	gnsSrW </span>&nbsp;<br />
&nbsp;  <span style="display: none;"> V.jVy!Lut </span>&nbsp;<br />
&nbsp;  9.Pragma:<span style="display: none;"> ?R\va]Nh6 </span>&nbsp;<br />
&nbsp;  语法和其它的http中的多值字段一样，就像Accept字段，名以上是一个冒号分开的入口列表对他来说可选的参数是被汉欧挚摹?<span style="display: none;"> ;BkR;v(cR&amp; </span>&nbsp;<br />
&nbsp;  Pragma 指示应该被服务器理解，对它来说是相对的，例如，一个代理服务器当前仅仅一个pragma被定义：no-cache <span style="display: none;"> _G;Yq~	 ` </span>&nbsp;<br />
&nbsp;  当当前的代理不应该从缓存返回一个文档时，即使它还没有被到期，但是它总应该从实际存在地服务器请求文档。<span style="display: none;">
9WZb|Wn </span>&nbsp;<br />
&nbsp;  Pragma应该被通过代理实现，甚至他们也许对代理本身有意义。当请求不得不通过许多代理时，这在事件中是必须的，而且pragma应该队所有的他们有效。<span style="display: none;"> 	Qbd. 6&lt;9 </span>&nbsp;<br />
<span style="display: none;"> ST&amp;+
ZJ </span>&nbsp;<br />
以下是用jetcar在亦多下载网络吸血鬼的信息<span style="display: none;"> i?u[St} </span>&nbsp;<br />
<span style="display: none;"> vIQ[#vPP </span>&nbsp;<br />
Thu Mar 14 14:36:56 2002 正在连接 202.113.29.120 [IP=202.113.29.120:80]<span style="display: none;"> 8!
QGw4Q </span>&nbsp;<br />
//正在连接主机，解析ip地址<span style="display: none;"> &gt;n.y@yA </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 已连接.<span style="display: none;"> @Y\5m0M </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 GET /index.dhtml?op=download&amp;ino=2941&amp;type=file HTTP/1.1  //请求行，表示用get方式取得文件，并且是HTTP1.1版本<span style="display: none;"> !v[G3 </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 HOST: 202.113.29.120 //主机名<span style="display: none;"> aB13
hTE </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 ACCEPT: */* &nbsp;  //accept字段，接受的数据类型<span style="display: none;"> L=G|8wH+d </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 Referer: <a href="http://202.113.29.120//" target="_blank">http://202.113.29.120//</a>从该网址转发而来<span style="display: none;"> 7I
8%+
|rV </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)//客户端标识<span style="display: none;"> R0`AH-tJ </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 Pragma: no-cache  //参数，表示与以前的服务器兼容<span style="display: none;"> 9o[B-. </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 Cache-Control: no-cache //不使用缓存<span style="display: none;"> -o51QTM </span>&nbsp;<br />
Thu Mar 14 14:36:57 2002 Connection: close  //表示非持续性连接。<span style="display: none;"> [(OIW%:G </span>&nbsp;<br />
以下为response字段<span style="display: none;"> \@|Su~$ </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 HTTP/1.1 302 Found<span style="display: none;"> bGJ'
,;cM, </span>&nbsp;<br />
服务器使用HTTP/1.0协议，状态值（Status Code）为200，状态为OK，表示文件可以读取<span style="display: none;"> :nG?g&amp; </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Date: Thu, 14 Mar 2002 06:52:16 GMT//现在的时间，用格林威治时间表示<span style="display: none;"> M"!P5;+ </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Server: Apache/1.3.19 (Unix) PHP/4.0.4pl1<span style="display: none;"> X`zFgF\#| </span>&nbsp;<br />
//服务器类型<span style="display: none;"> g&lt;}9' PUJ </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 X-Powered-By: PHP/4.0.4pl1<span style="display: none;"> �[h)f} </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Set-Cookie: PHPSESSID=6cf938f3c6ce551971c787ac8b3c0f5b; path=/<span style="display: none;"> Az4Vm/&gt;e? </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Expires: Thu, 19 Nov 1981 08:52:00 GMT//请求文档过期时间<span style="display: none;"> 4bVqy~]6&amp; </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0<span style="display: none;"> spYOmo)1 </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Pragma: no-cache<span style="display: none;"> 
0Vzzp(:? </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Content-Disposition: inline; filename=netvampire33.zip<span style="display: none;"> e*M?W#*j </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Location: <a href="ftp://202.113.29.120/pub/Dos_Windows/Internet/Client/Download/Net" target="_blank">ftp://202.113.29.120/pub/Dos_Windows/Internet/Client/Download/Net</a> Vampire/3.3/netvampire33.zip<span style="display: none;"> fP3M"z </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Connection: close<span style="display: none;"> uyFam:Iv�B </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Transfer-Encoding: chunked<span style="display: none;"> M1*;oO]8u </span>&nbsp;<br />
Thu Mar 14 14:36:58 2002 Content-Type: text/html<span style="display: none;"> &lt;#Ukle?@ </span>&nbsp;<br />
<span style="display: none;"> }AHY7M </span>&nbsp;<br />
备注：服务器返回的各类错误<span style="display: none;"> ee4�1{] </span>&nbsp;<br />
当服务器响应时，其状态行的信息为HTTP的版本号，状态码，及解释状态码的简单说明。现将5类状态码详细列出： <span style="display: none;"> FkceU	Yu </span>&nbsp;<br />
① 客户方错误 <span style="display: none;"> 3V2)#\2ux </span>&nbsp;<br />
100　 继续 <span style="display: none;"> |D-N4Qd8F </span>&nbsp;<br />
101　 交换协议 <span style="display: none;"> `^)pF~g;&gt; </span>&nbsp;<br />
② 成功 <span style="display: none;"> +~f:
b\6 </span>&nbsp;<br />
200 　OK <span style="display: none;"> .4s
f{	 </span>&nbsp;<br />
201 　已创建 <span style="display: none;"> R9�m(}&amp; </span>&nbsp;<br />
202　 接收 <span style="display: none;"> U'yfDLt </span>&nbsp;<br />
203　 非认证信息 <span style="display: none;"> 	1i')$R </span>&nbsp;<br />
204　 无内容 <span style="display: none;"> ;;8 ?#	A </span>&nbsp;<br />
205 　重置内容 <span style="display: none;"> X|*
H	Z+ </span>&nbsp;<br />
206　 部分内容 <span style="display: none;"> #Bj(fDd4q </span>&nbsp;<br />
③ 重定向 <span style="display: none;"> &gt;*L�[o </span>&nbsp;<br />
300 　多路选择 <span style="display: none;"> VN}mdKh'g </span>&nbsp;<br />
301　 永久转移 <span style="display: none;"> F@9E`:+&gt; </span>&nbsp;<br />
302　 暂时转移 <span style="display: none;"> RT'{f
 </span>&nbsp;<br />
303　 参见其它 <span style="display: none;"> X(
mQL" </span>&nbsp;<br />
304 　未修改（Not Modified） <span style="display: none;"> IAa5
Y{; </span>&nbsp;<br />
305　 使用代理 <span style="display: none;"> tFyt]hS </span>&nbsp;<br />
④ 客户方错误 <span style="display: none;"> aNwP?~
Y6T </span>&nbsp;<br />
400　 错误请求（Bad Request） <span style="display: none;"> YwCTYQ{
</span>&nbsp;<br />
401 　未认证 <span style="display: none;"> n sth,S </span>&nbsp;<br />
402 　需要付费 <span style="display: none;"> �Hq0iA2;4 </span>&nbsp;<br />
403　 禁止（Forbidden） <span style="display: none;"> "yLd]q% </span>&nbsp;<br />
404　 未找到（Not Found） <span style="display: none;"> e n.q </span>&nbsp;<br />
405　 方法不允许 <span style="display: none;"> T6T&lt;kUUB </span>&nbsp;<br />
406　 不接受 <span style="display: none;"> Kv_W^z$ </span>&nbsp;<br />
407　 需要代理认证 <span style="display: none;"> &gt;/r+zY~�k </span>&nbsp;<br />
408　 请求超时 <span style="display: none;"> ,$"�6?;sj&lt; </span>&nbsp;<br />
409　 冲突 <span style="display: none;"> _yOot^0^ </span>&nbsp;<br />
410 　失败 <span style="display: none;"> o3X4.A2 </span>&nbsp;<br />
411 　需要长度 <span style="display: none;">
,V
/^N= </span>&nbsp;<br />
412　 条件失败 <span style="display: none;"> bCS}FR </span>&nbsp;<br />
413 　请求实体太大 <span style="display: none;"> +l7[V </span>&nbsp;<br />
414 　请求URI太长 <span style="display: none;"> %fBJgp W- </span>&nbsp;<br />
415 　不支持媒体类型 <span style="display: none;"> B3�B}02" </span>&nbsp;<br />
⑤ 服务器错误 <span style="display: none;"> 
77Fj/c </span>&nbsp;<br />
500　 服务器内部错误 <span style="display: none;"> Xa:5$gZ </span>&nbsp;<br />
501　 未实现（Not Implemented） <span style="display: none;"> MCwjQ94 </span>&nbsp;<br />
502　 网关失败 <span style="display: none;"> [Y
1~|E
</span>&nbsp;<br />
504 　网关超时 <span style="display: none;"> 2"kB#cuxl </span>&nbsp;<br />
505 　HTTP版本不支持 <span style="display: none;"> jP(.5#&lt;b~ </span>&nbsp;<br />
<span style="display: none;"> &amp;YZe_</span>
<img src ="http://www.blogjava.net/lvq810/aggbug/210180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-06-23 22:47 <a href="http://www.blogjava.net/lvq810/articles/210180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 网页事件[转]</title><link>http://www.blogjava.net/lvq810/articles/208745.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Tue, 17 Jun 2008 17:51:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/208745.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/208745.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/208745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/208745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/208745.html</trackback:ping><description><![CDATA[click() 对象.click() 使对象被点击。<br />
closed 对象.closed 对象窗口是否已关闭true/false<br />
clearTimeout(对象) 清除已设置的setTimeout对象<br />
clearInterval(对象) 清除已设置的setInterval对象<br />
confirm("提示信息") 弹出确认框，确定返回true取消返回false<br />
cursor:样式 更改鼠标样式 hand crosshair text wait help default auto e/s/w/n-resize<br />
event.clientX 返回最后一次点击鼠标X坐标值；<br />
event.clientY 返回最后一次点击鼠标Y坐标值；<br />
event.offsetX 返回当前鼠标悬停X坐标值<br />
event.offsetY 返回当前鼠标悬停Y坐标值<br />
<br />
document.write(document.lastModified) 网页最后一次更新时间<br />
document.ondblclick=x 当双击鼠标产生事件<br />
document.onmousedown=x 单击鼠标键产生事件<br />
<br />
document.body.scrollTop; 返回和设置当前竖向滚动条的坐标值，须与函数配合,<br />
document.body.scrollLeft; 返回和设置当前横向滚动务的坐标值，须与函数配合，<br />
document.title document.title="message"; 当前窗口的标题栏文字<br />
document.bgcolor document.bgcolor="颜色值"; 改变窗口背景颜色<br />
document.Fgcolor document.Fgcolor="颜色值"; 改变正文颜色<br />
document.linkcolor document.linkcolor="颜色值"; 改变超联接颜色<br />
document.alinkcolor document.alinkcolor="颜色值"; 改变正点击联接的颜色<br />
document.VlinkColor document.VlinkColor="颜色值"; 改变已访问联接的颜色<br />
document.forms.length 返回当前页form表单数<br />
document.anchors.length 返回当前页锚的数量<br />
document.links.length 返回当前页联接的数量<br />
document.onmousedown=x 单击鼠标触发事件<br />
document.ondblclick=x 双击鼠标触发事件<br />
defaultStatus window.status=defaultStatus; 将状态栏设置默认显示<br />
<br />
function function xx(){...} 定义函数<br />
isNumeric 判断是否是数字<br />
innerHTML xx=对象.innerHTML 输入某对象标签中的html源代码<br />
innerText divid.innerText=xx 将以div定位以id命名的对象值设为XX<br />
<br />
location.reload(); 使本页刷新，target可等于一个刷新的网页<br />
<br />
Math.random() 随机涵数,只能是0到1之间的数,如果要得到其它数,可以为*10,再取整<br />
Math.floor(number) 将对象number转为整数，舍取所有小数<br />
Math.min(1,2) 返回1,2哪个小<br />
Math.max(1,2) 返回1,2哪个大<br />
<br />
navigator.appName 返回当前浏览器名称<br />
navigator.appVersion 返回当前浏览器版本号<br />
navigator.appCodeName 返回当前浏览器代码名字<br />
navigator.userAgent 返回当前浏览器用户代标志<br />
<br />
onsubmit onsubmit="return(xx())" 使用函数返回值<br />
opener opener.document.对象 控制原打开窗体对象<br />
<br />
prompt xx=window.prompt("提示信息","预定值"); 输入语句<br />
parent parent.框架名.对象 控制框架页面<br />
<br />
return return false 返回值<br />
random 随机参数（0至1之间）<br />
reset() form.reset(); 使form表单内的数据重置<br />
<br />
split("") string.split("") 将string对象字符以逗号隔开<br />
submit() form对象.submit() 使form对象提交数据<br />
<br />
String对象的 charAt(x)对象 反回指定对象的第多少位的字母<br />
lastIndexOf("string") 从右到左询找指定字符，没有返回-1<br />
indexOf("string") 从左到右询找指定字符，没有返回-1<br />
LowerCase() 将对象全部转为小写 <br />
UpperCase() 将对象全部转为大写<br />
substring(0,5) string.substring(x,x) 返回对象中从0到5的字符<br />
setTimeout("function",time) 设置一个超时对象<br />
setInterval("function",time) 设置一个超时对象<br />
<br />
toLocaleString() x.toLocaleString() 从x时间对象中获取时间，以字符串型式存在<br />
typeof(变量名) 检查变量的类型，值有：String,Boolean,Object,Function,Underfined<br />
<br />
window.event.button==1/2/3 鼠标键左键等于1右键等于2两个键一起按为3<br />
window.screen.availWidth 返回当前屏幕宽度(空白空间)<br />
window.screen.availHeight 返回当前屏幕高度(空白空间)<br />
window.screen.width 返回当前屏幕宽度(分辨率值)<br />
window.screen.height 返回当前屏幕高度(分辨率值)<br />
window.document.body.offsetHeight; 返回当前网页高度<br />
window.document.body.offsetWidth; 返回当前网页宽度<br />
window.resizeTo(0,0) 将窗口设置宽高<br />
window.moveTo(0,0) 将窗口移到某位置<br />
window.focus() 使当前窗口获得焦点<br />
window.scroll(x,y) 窗口滚动条坐标，y控制上下移动，须与函数配合<br />
window.open() window.open("地址","名称","属性") <br />
属性:toolbar(工具栏),location(地址栏),directions,status(状态栏),<br />
menubar
(菜单栏),scrollbar(滚动条),resizable(改变大小), width(宽),height(高),fullscreen(全
屏),scrollbars(全屏时无滚动条无参 数,channelmode(宽屏),left(打开窗口x坐标),top(打开窗口y坐标)<br />
window.location = 'view-source:' + window.location.href 应用事件查看网页源代码;<br />
<br />
<br />
a=new Date(); //创建a为一个新的时期对象<br />
y=a.getYear(); //y的值为从对象a中获取年份值 两位数年份<br />
y1=a.getFullYear(); //获取全年份数 四位数年份<br />
m=a.getMonth(); //获取月份值<br />
d=a.getDate(); //获取日期值<br />
d1=a.getDay(); //获取当前星期值<br />
h=a.getHours(); //获取当前小时数<br />
m1=a.getMinutes(); //获取当前分钟数<br />
s=a.getSeconds(); //获取当前秒钟数<br />
<br />
<br />
对象.style.fontSize="文字大小";<br />
单位：mm/cm/in英寸/pc帕/pt点/px象素/em文字高<br />
1in=1.25cm<br />
1pc=12pt<br />
1pt=1.2px(800*600分辩率下)<br />
<br />
文本字体属性：<br />
fontSize大小<br />
family字体<br />
color颜色<br />
fontStyle风格，取值为normal一般,italic斜体,oblique斜体且加粗<br />
fontWeight加粗,取值为100到900不等,900最粗,light,normal,bold<br />
letterSpacing间距,更改文字间距离,取值为,1pt,10px,1cm<br />
textDecoration:文字修饰;取值,none不修饰,underline下划线,overline上划线<br />
background:文字背景颜色,<br />
backgroundImage:背景图片,取值为图片的插入路径<br />
<br />
<br />
点击网页正文函数调用触发器：<br />
<br />
1.onClick 当对象被点击<br />
2.onLoad 当网页打开,只能书写在body中<br />
3.onUnload 当网页关闭或离开时,只能书写在body中<br />
4.onmouseover 当鼠标悬于其上时<br />
5.onmouseout 当鼠标离开对象时<br />
6.onmouseup 当鼠标松开<br />
7.onmousedown 当鼠标按下键<br />
8.onFocus 当对象获取焦点时<br />
9.onSelect 当对象的文本被选中时<br />
10.onChange 当对象的内容被改变<br />
11.onBlur 当对象失去焦点<br />
onsubmit=return(ss())表单调用时返回的值<br />
<br />
直线 border-bottom:1x solid black<br />
虚线 border-bottom:1x dotted black<br />
点划线 border-bottom:2x dashed black<br />
双线 border-bottom:5x double black<br />
槽状 border-bottom:1x groove black<br />
脊状 border-bottom:1x ridge black
<img src ="http://www.blogjava.net/lvq810/aggbug/208745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-06-18 01:51 <a href="http://www.blogjava.net/lvq810/articles/208745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Http各个状态码含义[转]</title><link>http://www.blogjava.net/lvq810/articles/208399.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Mon, 16 Jun 2008 10:24:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/208399.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/208399.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/208399.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/208399.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/208399.html</trackback:ping><description><![CDATA[Http各个状态码含义<br />
1**：请求收到，继续处理<br />
2**：操作成功收到，分析、接受<br />
3**：完成此请求必须进一步处理<br />
4**：请求包含一个错误语法或不能完成<br />
5**：服务器执行一个完全有效请求失败<br />
<br />
100 Continue 初始的请求已经接受，客户应当继续发送请求的其余部分。（HTTP 1.1新）<br />
<br />
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议（HTTP 1.1新）<br />
<br />
200 OK 一切正常，对GET和POST请求的应答文档跟在后面。<br />
<br />
201 Created 服务器已经创建了文档，Location头给出了它的URL。<br />
<br />
202 Accepted 已经接受请求，但处理尚未完成。<br />
<br />
203 Non-Authoritative Information 文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝（HTTP 1.1新）。<br />
<br />
204 No Content 没有新文档，浏览器应该继续显示原来的文档。如果用户定期地刷新页面，而Servlet可以确定用户文档足够新，这个状态代码是很有用的。<br />
<br />
205 Reset Content 没有新的内容，但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容（HTTP 1.1新）。<br />
<br />
206 Partial Content 客户发送了一个带有Range头的GET请求，服务器完成了它（HTTP 1.1新）。<br />
<br />
300 Multiple Choices 客户请求的文档可以在多个位置找到，这些位置已经在返回的文档内列出。如果服务器要提出优先选择，则应该在Location应答头指明。<br />
<br />
301 Moved Permanently 客户请求的文档在其他地方，新的URL在Location头中给出，浏览器应该自动地访问新的URL。<br />
<br />
302 Found 类似于301，但新的URL应该被视为临时性的替代，而不是永久性的。注意，在HTTP1.0中对应的状态信息是&#8220;Moved Temporatily&#8221;。<br />
出现该状态代码时，浏览器能够自动访问新的URL，因此它是一个很有用的状态代码。<br />
<br />
注意这个状态代码有时候可以和301替换使用。例如，如果浏览器错误地请求http://host/~user（缺少了后面的斜杠），有的服务器返回301，有的则返回302。<br />
<br />
严格地说，我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。<br />
<br />
303 See Other 类似于301/302，不同之处在于，如果原来的请求是POST，Location头指定的重定向目标文档应该通过GET提取（HTTP 1.1新）。<br />
<br />
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。<br />
<br />
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取（HTTP 1.1新）。<br />
<br />
307
Temporary Redirect
和302（Found）相同。许多浏览器会错误地响应302应答进行重定向，即使原来的请求是POST，即使它实际上只能在POST请求的应答是303时
才能重定向。由于这个原因，HTTP
1.1新增了307，以便更加清除地区分几个状态代码：当出现303应答时，浏览器可以跟随重定向的GET和POST请求；如果是307应答，则浏览器只
能跟随对GET请求的重定向。（HTTP 1.1新）<br />
<br />
400 Bad Request 请求出现语法错误。<br />
<br />
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头，浏览器据此显示用户名字/密码对话框，然后在填写合适的Authorization头后再次发出请求。<br />
<br />
403 Forbidden 资源不可用。服务器理解客户的请求，但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。<br />
<br />
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。<br />
<br />
405 Method Not Allowed 请求方法（GET、POST、HEAD、Delete、PUT、TRACE等）对指定的资源不适用。（HTTP 1.1新）<br />
<br />
406 Not Acceptable 指定的资源已经找到，但它的MIME类型和客户在Accpet头中所指定的不兼容（HTTP 1.1新）。<br />
<br />
407 Proxy Authentication Required 类似于401，表示客户必须先经过代理服务器的授权。（HTTP 1.1新）<br />
<br />
408 Request Timeout 在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。（HTTP 1.1新）<br />
<br />
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突，因此请求不能成功。（HTTP 1.1新）<br />
<br />
410 Gone 所请求的文档已经不再可用，而且服务器不知道应该重定向到哪一个地址。它和404的不同在于，返回407表示文档永久地离开了指定的位置，而404表示由于未知的原因文档不可用。（HTTP 1.1新）<br />
<br />
411 Length Required 服务器不能处理请求，除非客户发送一个Content-Length头。（HTTP 1.1新）<br />
<br />
412 Precondition Failed 请求头中指定的一些前提条件失败（HTTP 1.1新）。<br />
<br />
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求，则应该提供一个Retry-After头（HTTP 1.1新）。<br />
<br />
414 Request URI Too Long URI太长（HTTP 1.1新）。<br />
<br />
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。（HTTP 1.1新）<br />
<br />
500 Internal Server Error 服务器遇到了意料不到的情况，不能完成客户的请求。<br />
<br />
501 Not Implemented 服务器不支持实现请求所需要的功能。例如，客户发出了一个服务器不支持的PUT请求。<br />
<br />
502 Bad Gateway 服务器作为网关或者代理时，为了完成请求访问下一个服务器，但该服务器返回了非法的应答。<br />
<br />
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如，Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。<br />
<br />
504 Gateway Timeout 由作为代理或网关的服务器使用，表示不能及时地从远程服务器获得应答。（HTTP 1.1新）<br />
<br />
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本。（HTTP 1.1新）<br />
==================================================================================<br />
英文版：<br />
<br />
100：Continue<br />
101：Switching Protocols<br />
102：Processing<br />
<br />
200：OK<br />
201：Created<br />
202：Accepted<br />
203：Non-Authoriative Information<br />
204：No Content<br />
205：Reset Content<br />
206：Partial Content<br />
207：Multi-Status<br />
<br />
300：Multiple Choices<br />
301：Moved Permanently<br />
302：Found<br />
303：See Other<br />
304：Not Modified<br />
305：Use Proxy<br />
306：(Unused)<br />
307：Temporary Redirect<br />
<br />
400：Bad Request<br />
401：Unauthorized<br />
402：Payment Granted<br />
403：Forbidden<br />
404：File Not Found<br />
405：Method Not Allowed<br />
406：Not Acceptable<br />
407：Proxy Authentication Required<br />
408：Request Time-out<br />
409：Conflict<br />
410：Gone<br />
411：Length Required<br />
412：Precondition Failed<br />
413：Request Entity Too Large<br />
414：Request-URI Too Large<br />
415：Unsupported Media Type<br />
416：Requested range not satisfiable<br />
417：Expectation Failed<br />
422：
Unprocessable Entity&nbsp; ：The 422 (Unprocessable Entity) status code means
the server understands the content type of the request entity (hence a
415(Unsupported Media Type) status code is inappropriate), and the
syntax of the request entity is correct (thus a 400 (Bad Request)
status code is inappropriate) but was unable to process the contained
instructions. For example, this error condition may occur if an XML
request body contains well-formed (i.e., syntactically correct), but
semantically erroneous XML instructions.<br />
423：Locked ： The 423 (Locked) status code means the source or destination resource of a method is locked.<br />
424：
Failed Dependency ： The 424 (Failed Dependency) status code means that
the method could not be performed on the resource because the requested
action depended on another action and that action failed. For example,
if a command in a PROPPATCH method fails then, at minimum, the rest of
the commands will also fail with 424 (Failed Dependency).<br />
<br />
500：Internal Server Error<br />
501：Not Implemented<br />
502：Bad Gateway<br />
503：Service Unavailable<br />
504：Gateway Timeout<br />
505：HTTP Version Not Supported<br />
507：Insufficient Storage<br />
&nbsp;
<img src ="http://www.blogjava.net/lvq810/aggbug/208399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-06-16 18:24 <a href="http://www.blogjava.net/lvq810/articles/208399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript中用解决document.getElementsByName不能获得对象的问题[转]</title><link>http://www.blogjava.net/lvq810/articles/194384.html</link><dc:creator>lvq810</dc:creator><author>lvq810</author><pubDate>Sun, 20 Apr 2008 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/lvq810/articles/194384.html</guid><wfw:comment>http://www.blogjava.net/lvq810/comments/194384.html</wfw:comment><comments>http://www.blogjava.net/lvq810/articles/194384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lvq810/comments/commentRss/194384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lvq810/services/trackbacks/194384.html</trackback:ping><description><![CDATA[<p>在写了很多js后,会发现在js中总会出现各种各样奇怪的问题,主要的问题是不能获得所需要的对象.<br />
一般来说,我们所需要获得的对象有几种办法获得:<br />
1.
<strong>ID 法</strong>,通过使用<font color="#0080ff">document.getElementById()</font>这个方法获得用户所需的对象,你只需要在标签中加入id="yourIdName"这样的属性,你就可以用这个方法获得这个对象了.举个例子来说:有如下代码<br />
<font color="#804000">&lt;table&gt;&lt;tr
id='zergTr'&gt;&lt;td&gt;这里是zergpest的第一行&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
</font>那么我们要获得这个tr,并且设置这个tr为不可见,应该这样做.请看如下代码:<br />
<font color="#804000">&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var zergpest =
document.getElementById("zergTr");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zergpest.style.display =
"none";<br />
&lt;/script&gt;<br />
</font>这样就可以通过使用document.getElementById()
这个方法来获得改对象,并且设置该对象为不可见.<br />
但是,如果我们需要设置多个具有同样ID的对象不可见的时候,这个方法就不能用了,因为无论你怎么为后面的&lt;tr&gt;标签添加id属性,用document.getElementById()这个方法获得的只能是第一个具有该ID的对象,其实其他的ID这时候应该是属于伪Id了.你所要操作的只能操作到第一个具有该ID的对象,而不是具有所有你所设置的具有该ID的对象.那么这时候我们该怎么办呢,请看第2种方法.<br />
2.<strong>Name法</strong>,通过使用<font color="#0080ff">document.getElementsByName()</font>这个方法获得用户所需的对象,你需要做的是在标签中加入name="yourname"这样的属性,道理上说你就可以使用该方法获得该对象了.然而,有些时候确不是这样的,document.getElementsByName()这个方法其实主要是针对form标签中的对象有用,在form标签以外的对象就不一定有用了,这里说的不一定,是说有时候有用,有时候没有用.不过也可能和我用的IE7
beta3 有关,没有深入研究过.举个例子了说,有如下代码.<br />
<font color="#804000">&lt;table&gt;&lt;tr
name='zergTr'&gt;&lt;td&gt;这里是zergpest的第一行&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&lt;table&gt;&lt;tr
name='zergTr'&gt;&lt;td&gt;这里是zergpest的第二行&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
</font>我们这里有二个相同的name,因为这个方法是获取具有多个name的,如果只有一个name的话,那么建议你用ID法来获取,而不要用这种,不然的话你需要进行判断length值.<br />
我们可以用如下代码来获取该对象,并且设置该对象为不可见,代码如下:<br />
<font color="#804000">&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;&nbsp; var zergpest =
document.getElementsByName("zergTr");<br />
&nbsp;&nbsp;&nbsp; if (!zergpest.length)<br />
&nbsp;&nbsp;&nbsp;
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zergpest.style.display = "none";<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i=0;i&lt;zergpest.length;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zergpest[i].style.display = "none";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;
}<br />
&lt;/script&gt;<br />
</font>这样,道理上我们应该可以设置所有name值为zergTr的对象为不可见了,可是事实往往并不能如你所希望的,如果我们在&lt;tr&gt;前面加个&lt;form&gt;标签,那么结果就可以得到你所需要的结果了,但没有form标签的话,结果是有时候可以正确,有时候不正确,甚至不能获得对象.这时候,我们用第3种方法来解决,这就是轩辕的JS对象大招了.<br />
3.<strong>超级Name大法</strong>,通过使用<font color="#0080ff">document.documentElement.getElementsByTagName()</font>这个方法结合name法来获得这些你所需要的对象.还是用刚才的例子.如下:<br />
<font color="#804000">&lt;table&gt;&lt;tr
name='zergTr'&gt;&lt;td&gt;这里是zergpest的第一行&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
&lt;table&gt;&lt;tr
name='zergTr'&gt;&lt;td&gt;这里是zergpest的第二行&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br />
</font><font color="#000000">这里我们需要设置该&lt;tr&gt;标签为不可见,而也不希望加上看着很不愉快的&lt;form&gt;标签,这时我们就需要用如下代码:<br />
</font><font color="#804000">&lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;&nbsp; var zergpest =
document.documentElement.getElementsByTagName("tr");<br />
&nbsp;&nbsp;&nbsp; if
(!zergpest.length)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zergpest.style.display == "none";<br />
&nbsp;&nbsp;&nbsp;
}<br />
&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var realZerg = [];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var
i=0;i&lt;zergpest.length;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (zergpest[i].name
== "zergTr")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
realZerg.push(zergpest[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(realZerg.length)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var
j=0;j&lt;realZerg.length;j++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
realZerg[j].style.display = "none";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }
<br />
&lt;/script&gt;<br />
</font>这样就可以把所有name值等于yourname这样的多个对象设置为不可见了,这就是轩辕的超级Name大法,:),不要觉得用了2个for会牺牲性能,占用用户的cpu,其实现在用户的cpu最少都是1.5GHz以上,这点小运算对CPU来说根本就是骆驼身上的一个细胞,而且用户的cpu闲着也是闲着,既然对他供着电,那就让他做点事情吧.:)这3种方法各有好处,按照不同的需要可以选择不同的方法.终究会达到js所需要的目的.</p>
<br />
原文地址：http://zergpest.spaces.live.com/blog/cns!2C6F0CD52F9AC08D!1480.entry?_c=BlogPart<br />
<img src ="http://www.blogjava.net/lvq810/aggbug/194384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lvq810/" target="_blank">lvq810</a> 2008-04-20 22:27 <a href="http://www.blogjava.net/lvq810/articles/194384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>