使用HTTP协议访问Web在浏览器的地址栏中输入URL后,信息会发送到某处,然后从某处得到回复,并且内容将显示在网页上级。这种通过发送请求获取服务器资源的浏览器可以称为客户端。(client)Web以一种称为HTTP(即超文本传输??协议)的协议为规范,完成从客户端到服务器端的一系列操作过程。协议是规则的协议。可以说Web是建立在HTTP协议之上进行通信的。HTTP的诞生和知识共享的规划Web最初的想法的基本概念是:借助多个文档之间相互关系形成的超文本,它们可以链接在一起成为一个WWW(WorldWideWeb,WorldWideWeb),可以相互引用。现在已经提出了三种WWW结构。技术:1)HTML使用SGML(标准通用标记语言)作为页面的文本标记语言。2)HTTP作为文档传递协议。3)URL(UniformResourceLocator)名称指定文档地址的WWW是当时Web浏览器用来浏览超文本的客户端应用程序的名称。现在用来表示这一系列的集合,也可以简称为Web。Web增长时代1990年11月,CERN(欧洲核子研究组织)成功开发出世界上第一个Web服务器和Web浏览器。1992年9月,日本第一个网站主页开通。1993年1月,现代浏览器的始祖NCSA(美国国家超级计算机应用中心)开发的Mosaic问世。它以内联(inline)等形式显示HTML图像,其在图像方面的出色表现使其迅速风靡全球。1994年12月,NetscapeCommunications发布了NetscapeNavigator1.0。1995年,微软发布了Internet1.0和2.0。紧随其后的是Apache,现已成为Web服务器标准之一。当时以Apache0.2的形式出现在世人面前。1995年前后,微软和网景通信之间的浏览器大战愈演愈烈。两家公司都对HTML做了自己的扩展,所以在写HTML页面的时候,一定要兼容两家公司的浏览器。时至今日,这个问题对于那些写前端页面的工程师来说仍然是个难题。2000年前后,这场浏览器大战随着NetscapeCommunications的没落而告一段落。2004年,Mozilla基金会发布火狐浏览器,第二次浏览器大战随即爆发。停滞不前的HTTPHTTP/0.9HTTP于1990年问世。那时HTTP还没有被确立为正式标准。这时的HTTP其实包含了HTTP/1.0之前版本的意思,所以叫HTTP/0.9。HTTP/1.0HTTP于1996年5月正式宣布为标准,版本命名为HTTP/1.0。虽然它是一个早期的标准,但是这个协议标准在服务器端仍然被广泛使用。HTTP/1.1HTTP/1.1于1997年1月公布,是目前主流的HTTP协议版本。网络基础TCP/IP常用网络(包括Internet)在TCP/IP协议族的基础上运行。HTTP属于其中的一个子集。TCP/IP协议族计算机和网络设备必须相互通信,双方必须基于相同的方法,我们称这些规则为协议。协议里有各种各样的东西。从电缆的规格到IP地址的选择方法、寻找远程用户的方法、双方建立通信的顺序、Web页面显示需要处理的步骤等等。合集像这样与互联网相关的协议统称为TCP/IP。TCP/IP的分层管理1.TCP/IP协议族的一个重要点就是分层。TCP/IP协议族按层次分为以下四层:应用层、传输层、网络层和数据链路层。应用层应用层决定了向用户提供应用服务时的通信活动。TCP/IP协议族中预存了各种常用的应用服务。例如,FTP(文件传输协议)和DNS(域名系统)服务就是其中的两种。HTTP协议也在这一层。传输层传输层为上层应用层提供网络连接中两台计算机之间的数据传输。传输层有两种不同性质的协议:TCP(传输控制协议)和UDP(用户数据报协议)。网络层(又名网际网络层)网络层处理网络上的数据包流。数据包是通过网络传输的最小数据单位。这一层规定了到达对方计算机的路径(即所谓的传输路由),将数据包传送给对方。通过多台计算机或网络设备与其他计算机进行传输时,网络层的作用是在众多选项中选择一条传输路径。链路层(也称为数据链路层、网络接口层)处理连接到网络的硬件部分。包括控制操作系统、硬件设备驱动程序、NIC(网络适配器、网卡)以及光纤等物理可见部分(也包括连接器等所有传输介质)。硬件的范围在链路层的范围内。TCP/IP通信传输流使用TCP/IP协议族进行网络通信时,会通过层级顺序与对方进行通信。发送者从应用层往下走,接收者从应用层往上走。发送方在层与层之间传输数据时,每经过一层,就必须标上该层所属的头信息。反之,当接收端在层与层之间传输数据时,每经过一层就会擦除相应的header。这种对数据信息进行封装的方法称为封装。与HTTP密切相关的协议:IP、TCP和DNS负责IP协议的分层传输,IP网际协议位于网络层,TCP/IP协议族中的IP指网际协议。IP协议的作用是相互传送各种数据包。要确保确实发送给对方,需要满足各种条件。其中两个重要的条件是IP地址和MAC地址。IP地址是指分配给节点的地址,MAC地址是指网卡所属的固定地址。IP地址可以与MAC地址配对。IP地址可以改,但MAC地址基本不变。使用ARP协议与MAC地址进行通信。IP之间的通信依赖于MAC地址。在网络上,双方通信很少在同一个局域网内进行。通常,它们只能通过多台计算机和网络设备相互连接。传输时,将使用下一个传输设备的MAC地址来搜索下一个传输目标。这时候就会用到ARP协议。ARP协议是用来解析地址的协议。根据通信双方的IP地址,可以查出对应的MAC地址并进行处理。没有人能够完全掌握互联网上的传播状况。在到达通信目标之前的中转过程中,计算机、路由器等网络设备只能学习到很粗略的传输路径。这种机制叫做路由,有点像快递公司的送货流程。保证可靠性的TCP协议是分层的。TCP位于传输层,提供可靠的字节流服务。所谓字节流服务是指将大块的数据分成以报文段为单位的数据包进行管理,以便于传输。而可靠的传输服务是指能够准确、可靠地向对方传输数据。简而言之,TCP协议对数据进行了划分,以便于传输大数据,TCP协议可以确认数据是否最终交付给了对方,以确保数据能够到达目标。为了准确地将数据传递给目标,TCP协议采用了三次握手策略。数据包用TCP协议发送出去后,TCP不会忽略发送后的情况,一定会向对方确认是否发送成功。在握手过程中,使用了TCP的标识——SYN(同步)和ACK(确认)。发送方首先向对方发送一个带有SYN标志的数据包。接收端收到后返回一个带有SYN/ACK标志的数据包来表示确认信息。最后,发送方发回一个带有ACK标志的数据包,表示“握手结束”。除了上述的三次握手,TCP协议还有其他各种手段来保证通信的可靠性。DNS服务之间的解析服务负责域名解析DNS服务和HTTP协议一样,是一个位于应用层的协议,提供域名和IP地址之间的解析服务。可以为计算机分配IP地址以及主机名和域名。例如www.hackr.jpDNS协议提供了通过域名查找IP地址,或者从IP地址反向查找域名的服务。URI和URL相比于URI(统一资源标识符),我们更熟悉的是URL(统一资源定位符)。URL就是在使用网络浏览器等访问网页时需要输入的网页地址。例如,http://hackr.jp是URL。UniformResourceIdentifierURI是UniformResourceIdentifier的缩写。RFC2396对这三个词的定义如下。统一:统一的格式可以方便处理多种不同类型的资源,而不必根据上下文来识别资源指定的访问方式。此外,更容易添加新的协议方案(如:http:或ftp:)资源:资源上帝定义了“任何可以识别的东西”。不只是文档文件,图像或服务(如当地的天气预报)可以区别于其他类型,都可以作为资源。标识符:标识一个可识别的对象。也称为标识符综上所述,URI是由协议方案表示的资源的位置标识符。协议方案是用于访问资源的协议类型的名称。URI以字符串标识Internet资源,而URL指示资源的位置(它在Internet上的位置)。可见URL是URI的子集
