http协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的
一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供
一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理
文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架
构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互
联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了
一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端
是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指
定端口(默认端口为80)的HTTP请求。
TCP
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基
于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它
完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1] 另一个重要的
传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应
用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP
层不提供这样的流机制,而是提供不可靠的包交换。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适
当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元([1] MTU)
的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体[1] 的TCP
层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体
的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送
端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被
进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法)。该算法主要包括三个主
要部分:1)加性增、乘性减;2)慢启动;3)对超时事件做出反应。
实行标准
TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,
是一个工业标准的协议集,它是为广域网(WAN)设计的。它是由ARPANET网的研究机构发展起来的。
TCP三次握手的过程如下:
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
注意:
(1) “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出
自执行被动关闭那一端,有可能被合并成一个分节。
(2) 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关
闭”(half-close)。
(3) 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程
的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。
IP
网络之间互连的协议(IP)是Internet Protocol的外语缩写,[1] 中文缩写为“网协”.
网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。
IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
IP协议三个定义:
(1)IP定义了在TCP/IP互联网上数据传送的基本单元和数据格式。
(2)IP软件完成路由选择功能,选择数据传送的路径。
(3)IP包含了一组不可靠分组传送的规则,指明了分组处理、差错信息发生以及分组的规则。
IP数据包:联网的基本传送单元是IP数据包,包括数据包头和数据区部分。
IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用
于组播,E类用于实验,各类可容纳的地址数目不同。
A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两
位总是10,C类地址的前三位总是110。
实体IP
在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义。一个 IP 就好
似一个门牌!例如,你要去微软的网站的话,就要去『 64.4.11.42 』这个 IP 位置!这些可以直接
在网际网络上沟通的 IP 就被称为『实体 IP 』了。
虚拟IP
不过,众所皆知的,IP 位址仅为 xxx.xxx.xxx.xxx 的资料型态,其中, xxx 为 1-255 间的整数,
由于计算机的成长速度太快,实体的 IP 已经有点不足了,好在早在规划 IP 时就已经预留了三个
网段的 IP 做为内部网域的虚拟 IP 之用。
代理IP就是代理服务器,英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。
window.onclick
onclick 事件会在对象被点击时发生。
请注意, onclick 与 onmousedown 不同。单击事件是在同一元素上发生了鼠标按下事件之后
又发生了鼠标放开事件时才发生的。
支持该事件的 HTML 标签:
<a>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>,
<caption>, <cite>, <code>, <dd>, <dfn>, <div>, <dl>, <dt>, <em>, <fieldset>,
<form>, <h1> to <h6>, <hr>, <i>, <img>, <input>, <kbd>, <label>, <legend>,
<li>, <map>, <object>, <ol>, <p>, <pre>, <samp>, <select>, <small>, <span>,
<strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>,
<thead>, <tr>, <tt>, <ul>, <var>
支持该事件的 JavaScript 对象:
button, document, checkbox, link, radio, reset, submit
innerHTML
innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容;
对于innerHTML 属性,几乎所有的元素都有innerHTML属性,它是一个字符串,
用来设置或获取位于对象起始和结束标签内的HTML。(获取HTML当前标签的起始和结束里面的内容)
代码
<html>
<head>
<script type="text/javascript">
function getInnerHTML() {
alert(document.getElementById("tr1").innerHTML);
}
</script>
</head>
<body>
<table border="1">
<tr id="tr1"><td>Firstname</td><td>Lastname</td></tr>
<tr id="tr2"><td>Peter</td><td>Griffin</td></tr>
</table>
<br />
<input type="button" onclick="getInnerHTML()" value="Alert innerHTML of table row" />
</body>
</html>
运行结果:
<td>Firstname</td>
<td>Lastname</td>
注意:innerHTML不可写为innerHtml或是其他形式,大小写要严格遵守,不然无法获取或者设置数据。
innerText
innerText和innerHtml是用于在页面上输出要现实的信息的。
test.innerHTML:
也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
test.innerText:
从起始位置到终止位置的内容, 但它去除Html标签
test.outerHTML:
除了包含innerHTML的全部内容外, 还包含对象标签本身。
innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使用
innerHTML,而少用innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得
包含HTML标签的内容后,再用正则表达式去除HTML标签,下面是一个简单的符合W3C标准的示例:
<a href="javascript:alert(document.getElementById(‘test‘).innerHTML.replace
(/<.+?>/gim,‘‘))">无HTML,符合W3C标准</a>
代码
<html>
<head></head>
<frameset frameborder="yes" frameborder="1" rows="40%,*">
<frame name="top" src="1.html">
<frame name="bottom" src="2.html">
</frameset>
</html>
<html>
<head>
<script language="javascript">
function init()
{
var aaa = parent.window.frames[0].document.body.innerHTML;
alert(aaa);
}
</script>
</head>