一:基本概念
WWW(World Wide Web)即全球信息网,简称Web,又称为万维网。WWW由Internet上所有Web服务器提供的网页组成,不同的网页之间通过超链接连接,客户端使用一个标准的浏览器就能找到想要的网页,再点击网页中的超链,链接到另一网页;这一过程可以无限重复,直到找到所需的所有网页。
- 1989年WWW起源于CERN(欧洲粒子研究中心),最初是为了参与核物理实验而分布在不同国家的科学家之间交流研究报告、装置蓝图、图画、照片和其他文档而设计的一种网络通信工具。
- 1989年3月,物理学家Tim Berners-Lee提出初步的研究报告,18个月后有了初始的系统原型。
- 1993年2月发布了第一个图形式的浏览器Mosaic,它的作者 Marc Andresen 在 NCSA ( National Center for Supercomputing Applications)成立了一个公司,这就是首开 Web 服务器先河的网景通信公司( Netscape Communications)。
二:web技术
- Web技术是一种综合性网络应用技术,关系到网络信息的表示、组织、定位、传输、显示以及客户和服务器之间的交互作用等。
- 通常文字信息组织成线性的ASCII文本文件,而Web上的信息组织成非线性的超文本文件(Hypertext)。简单地说,超文本可以通过超链接(Hyperlink)指向网络上的其他信息资源。
- 超文本互相链接成网状结构,使得人们可以通过链接追索到与当前节点相关的信息。这种信息浏览方法正是人们习惯的联想式、跳跃式的思维方式的反映。
- 一个超文本文件叫做一个网页(WebPage),网页中包含指向有关网页的指针(超链接)。如果用户选择了某一个指针,则有关的网页就显示出来。超链接指向的网页可能在本地,也可能在网上别的地方。
WWW服务模型:
![计算机网络——应用层之万维网(WWW)_第1张图片](http://img.e-com-net.com/image/info8/0d175a7b14524f5383d9b080b1ee2306.jpg)
- Web上的信息不仅是超文本文件,还可以是语音、图形、图像、动画等。就像通常的多媒体信息一样,这里有一个对应的名称叫超媒体(Hypermedia)。
- 超媒体包括了超文本,也可以用超链接连结起来,形成超媒体文档。
- 超媒体文档的显示、搜索、传输功能全都由浏览器(browser)实现。
- WWW本质上是一种客户机/服务器(C/S)技术,其体系结构提供了一个灵活且强有力的设计模型:应用软件采用标准数据格式显示,并能通过它的客户机-浏览器(Browser)进行浏览。
- 浏览器是一个网络应用软件,它能向统一命名的数据服务对象的网络服务器——WWW服务器(或Web服务器)发送请求。而WWW服务器采用标准格式编码的响应来回复请求,WWW服务模型有时也称为浏览器/服务器(B/S)模型。
- 常用的WWW服务器有Microsoft IIS等
- 万维网必须解决以下几个问题
- 怎样标志分布在整个因特网上的万维网文档?
- 用何协议实现万维网上各种超链的链接?
- 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 怎样使用户能够很方便地找到所需的信息?
三:URL
URL (统一资源定位符):
- URL俗称“网址”,用于定位Internet上可访问的资源
- 是WWW的一种混合语,它表示要访问的主机地址、获取服务所用的协议以及所要浏览文件的路径和名字。
- URL 相当于一个文件名在网络范围的扩展。因此 URL是与因特网相连的机器上的任何可访问对象的一个指针。
URL格式:<协议>://<域名>/<路径>
- 例如:
http://ci.hfut.edu.cn/main.htm
- 第一部分是协议(或称为服务方式)
- 第二部分是存有该资源的主机IP地址(有时也包括端口号)
- 第三部分是主机资源的具体地址,如路径等。
- 第一部分和第二部分之间用“/”符号隔开,冒号和两个斜线是规定的格式;第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。
- 主机是存放资源的主机在因特网中的域名,端口路径有时可省略,若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)或IP地址。
URL访问过程:如果用户选择了一个要访问的网页,则浏览器和Web服务器的交互过程如下:
(1)浏览器计算出URL。
(2)浏览器通过DNS服务器查找URL的IP地址。
(3)DNS给出IP地址。
(4)浏览器与主机的端口80建立TCP连接。
(5)浏览器发出请求GET/main.html文件。
(6)ci.hfut.edu.cn服务器发送main.html文件。
(7)释放TCP连接。
(8)浏览器显示main.html文件
其中第(5)步的“GET”是HTTP协议提供的少数操作方法中的一种,其含义是读一个网页。常用的还有HEAD(读网页的头信息)和POST(把消息加到指定的网页上)等。另外,要说明的是很多浏览器不但支持HTTP协议,还支持FTP、Telnet、Gopher等,使用方法与HTTP完全一样。正因为如此,很多人认为WWW是无所不能的。
URL最常用的访问方式为以下三种:
- ftp:文件传送协议 FTP。
- http:超文本传送协议HTTP。
- News:USENET 新闻。
对于万维网的网点的访问要使用HTTP协议,HTTP的默认端口号是80,通常可省略。若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)。主页可以是以下几种情况之一:
- 一个WWW服务器的最高级别的页面。
- 某一个组织或部门的一个定制的页面或目录,从这样的页面可链接到因特网上的与本组织或部门有关的其他站点。
- 由某一个人自己设计的描述他本人情况的WWW页面。
例如,要查到有关合肥工业大学的信息,应先进入合肥工业大学的主页http://www.hfut.edu.cn
,这里省略了默认的端口号。而从主页入手,就可以链接到因特网上有关合肥工业大学各个部门消息的页面。
URL最大的缺点是当信息资源的存放地点发生变化时,必须对URL作相应的改变。因此人们正在研究新的信息资源表示方法。例如,URI(Universal Resource Identifier)即“通用资源标识”
、URN(Uniform Resource Name)即“统一资源名”和 URC ( Uniform Resource Citation)即“统一资源引用符”等。
四:超文本传输协议(HTTP):
- 能够快速查找这些超文本文档的协议,即HTTP协议(Hypertext Transfer Protocol)。
- HTTP是一个应用层协议,是面向事务(transactionoriented)的应用层协议,它是万维网上能够可靠交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
- 使用 TCP 连接进行可靠的传送。该协议基于TCP和C/S方式,服务器端口号为80;客户端只要与服务器的80端口建立一个TCP连接,就能够通过HTTP报文进行会话,实现超文本传输。
HTTP的主要特点:
- HTTP 是面向事务的客户服务器协议
- 万维网浏览器就是一个 HTTP 客户,而在万维网服务器等待 HTTP 请求的进程常称为 HTTP daemon,有的文献将它缩写为 HTTPD;HTTP daemon 在收到 HTTP 客户的请求后,把所需的文件返回给HTTP 客户。
一次HTTP操作称为一个事务,其工作过程可分为四步:
- 首先客户机与服务器需要建立连接。只要单击某个超级链接,客户进程建立一条同服务器进程的 TCP连接。
- 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号等。
- 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
- 客户端接收服务器所返回的信息,通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
- 如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标单击,等待信息显示即可。
HTTP报文格式:
- HTTP报文包括请求报文和响应报文。
- HTTP报文面向字符,每个字段都是一些ASCII字符串。
HTTP中的请求-响应链:
- 第一类:客户机直接向服务器发送请求,建立TCP连接,默认端口是80,然后在这个连接上发送请求。服务器监听连接上的请求,对于每一个请求,服务器启动一个线程或进程来对它进行服务。一旦请求处理完毕,服务器把响应在这个连接上送回给原来的客户机。
![计算机网络——应用层之万维网(WWW)_第2张图片](http://img.e-com-net.com/image/info8/d330dd6e7ea4483587f94e847b560b74.jpg)
- 第二类:通过代理服务器(Proxy Server),用户向代理服务器建立连接并发送请求,代理服务器再向WWW服务器发送请求,WWW服务器向代理服务器回送响应,最后代理向用户发回响应。
![计算机网络——应用层之万维网(WWW)_第3张图片](http://img.e-com-net.com/image/info8/9ae460ab0f0c4d0f9e9fd91451ae0819.jpg)
- 第三类:隧道,和第二类相似,也有一个中间节点。隧道和代理不同,它只是一个用户向WWW服务器发送请求以及从服务器接收响应的通道,不执行其他任何功能(如代理的cache功能、用户鉴别功能等)。代理和隧道可以是多重的,即在客户机到WWW服务器之间可以有多个代理和隧道。
客户请求是简单的 ASCII文本,服务器的响应也是以ASCII文本开始(首部)的,后面跟着数据(可以是ASCII或二进制数据 )。客户程序软件(浏览器)分析服务器的响应,并把它格式化输出,同时以高亮方式显示指向其他文档的链接。
HTTP的问题:
- HTTP带来的最大的性能问题是每个文件使用一条 TCP连接。当客户请求报文的长度超过服务器通告的MSS时,缓慢的建立使每一个TCP连接增加了额外的时延。
- 另一个问题是服务器进程正常关闭连接将引起在服务器主机上产生TIME-WAIT时延,在一个繁忙的服务器上可以看到很多这种待终止的连接。
五:超文本标记语言(HTML)
超文本标记语言( HyperText Markup Language ,HTML)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面。
需要注意的是:仅当 HTML文档是以.html 或 .htm为后缀时,浏览器才对此文档的各种标签进行解释。如 HTML文档改换以.txt 为其后缀,则 HTML 解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。当浏览器从服务器读取 HTML 文档后,就按照 HTML文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
HTML(超文本标注语言)用于编写网页;其特点是:
超文本标记语言HTML中的Markup的意思就是“设置标记”。HTML 定义了许多用于排版的命令(标签)。HTML把各种标签嵌入到万维网的页面中,这样就构成了所谓的 HTML文档,它是一种可以用任何文本编辑器创建的 ASCII码文件。
- 页面:页面是由HTML(超文本标注语言)编写的超文本文件,它能够集成文本、图象、语音和超链为一体。
- 元素(element)是HTML文档结构的基本组成部分。一个 HTML 文档本身就是一个元素。
- 每个 HTML文档由两个主要元素组成:首部(head)和主体(body)
- 首部包含文档的标题(title),以及系统用来标识文档的一些其他信息。标题相当于文件名。
- 主体是 HTML 文档最主要的部分。主体部分往往又由若干个更小的元素组成,如段落(paragraph)、表格(table)和列表(list)等。
HTML用一对标签(即一个开始标签和一个结束标签)或几对标签来标识一个元素。开始标签由一个小于字符“<”、一个标签名和一个大于字符“>”组成。结束标签和开始标签的区别只是在小于字符的后面要加上一个斜线字符“/”。标签名并不区分大写和小写。
下面是一个简单的例子,用来说明HTML文档中标签的用法。
![计算机网络——应用层之万维网(WWW)_第4张图片](http://img.e-com-net.com/image/info8/205bc6d2c0fa41e3ac389dce692075ac.jpg)
请求报文: 从客户端向服务器发送请求报文
![计算机网络——应用层之万维网(WWW)_第5张图片](http://img.e-com-net.com/image/info8/d0d2fd163e3840aba49a21e14cdf1b99.jpg)
- 方法:即请求的操作命令,包括:
- GET:请求发送URL指定的页面。如GET/hypertext/www/project.html
- HEAD:请求服务器仅发送一个页面头部信息(如修改时间、大小等)。
- PUT:向URL指定的位置上传一个页面,用于远程创建网页。
- POST:向网页中添加数据。
- DELETE:删除网页。
- TRACE:用于回路测试(服务器将请求报文返回)。
- CONNECT:用于代理服务器。
- URL:统一资源定位符
- 版本:如HTTP/1.0, HTTP/1.1
- S:空格;
- CR:回车;
- 头部行:用于说明浏览器、服务器或报文主体的一些信息。例如:
- Host: www.hfut.edu.cn {给出主机名}
- Connection: close {响应该请求后,释放连接,即非持续}
- User-Agennt: Mozilla/5.0 {使用Netscap浏览器}
- Accept-language: cn {用户希望优先得到中文版本文档}
状态码表示对请求的响应状态;原因短语是对状态码的解释。
![计算机网络——应用层之万维网(WWW)_第6张图片](http://img.e-com-net.com/image/info8/880fabea6f2a4b8290c52460fd31ce32.jpg)
动态网页:服务器应用程序根据浏览器请求,动态生成HTML文档。
活动网页:当浏览器请求时,服务器返回一段程序在浏览器上运行,更新网页内容。
如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人空间