订单查询 购书指南 购物车 收藏  
    首页 热点专题 精确搜索 精品推荐 俱乐部论坛 下载服务 走近科海 征稿专栏 新书预告 各地经销商 特价直销


第 18 章 简易的WWW服务器架设

     
 

我们最常讲的“架站”其实就是架设一个 Web 网站。那么什么是 Web 呢? Web 就是 World Wide Web ,或者也可以称之为万维网。 通常说的上网就是使用 WWW 来浏览用户所需要的信息。目前的 WWW 服务器主要分为两大阵营—— Unix-Like 上面的 Apache 与 Windows 上面的 IIS 。就性价比来说,当然是 Linux 上面的 Apache 最棒。 WWW 服务器的类型可以分为静态与动态,而这些动态的网站中,很多都是以目前 Linux + Apache + MySQL + PHP 架设而成的,简称为 LAMP 。这种动态 WWW 主机很有趣,它可以沟通服务器端与客户端的数据。下面就来进入 LAMP 的世界吧!

18.1 原理

18.1.1 WWW 与 URL

WWW 是 World Wide Web 的缩写,翻译过来就是全球广域网,它可以结合文字、图形、影像及声音等多媒体,并通过超文本( HyperText )的方式,将信息通过 Internet 传递到世界各处! WWW 的数据是如何传递的呢?

如果你经常上网浏览(不论是使用 Mosilla 、 IE 还是 Netscape )就会知道,中国台湾有 个很有名气的网站——雅虎网站( tw.yahoo.com ),只要在地址栏上面输入“ http://tw.yahoo.com ” 就可以浏览到雅虎的网页信息,其中“ http://tw.yahoo.com ”是 URL ( Uniform Resource Locator ,统一资源定位器),“ tw.yahoo.com ”是主机名称,也就是前面刚提到过的 DNS 中的 FQDN ( Fully Qualified Domain Name ,完全符合标准的域名),即主机名称加上域名所得的一个独一无二的 Internet 上面的名字。由于计算机仅识别网络中的 IP ,所以,雅虎网站的真实 IP 就是通过 DNS 解析 tw.yahoo.com 而找到的,然后经过 WWW 的协议将数据传到你的眼前。都有哪些格式的 URL 呢?总的来说,网址的形式如下:

< 协议 >://< 主机地址 >[: 端口 ]/< 目录 >

•  协议:包括 http , ftp , news , gopher 和 telnet 几种常见的协议。其中, http 是利用“主机的 http 端口,通常为 80 端口”,至于 ftp 则是利用“主机的 ftp 端口,通常为 21 端口”。请注意, 80 与 21 都是主机所提供的服务,而不是客户端的端口,所以,使用 http 与 ftp 接入同一台计算机,所获得的信息并不见得会一样,因为服务本身就不同,一个是 WWW ,一个是 ftp ,怎么会相同呢。此外,如果没有指定协议,那么默认的协议就需要看客户端使用的哪个浏览器的默认协议。举个例子来说,如果使用 Netscape ,则默认的协议就是 http ,因此,在地址栏输入 tw.yahoo.com 时, Netscape 立刻就会以 http 进行连接。

•  主机地址:刚才提到过的 FQDN 应该还没有忘记吧!由于计算机仅认识 IP ,所以,如果你输入 IP ,同样可以联网。但是,如果是输入主机名称(域名),就必需要让该主机名称可以经由 翻译 器得到对应的 IP 。 翻译 器是 /etc/hosts 或者是 /etc/resolv.conf 里面的设置。当然,对外提供正常的 WWW 服务时,主机名称就必需要让大家可以 翻译 到 IP ,这就需要去申请一个合法的域名。

•  目录:这也就是 URI ( Uniform Resource Indicator ,统一资源定位符)。如果你要去的网站网页在主页所在目录的下面,那么你直接输入目录与网页的名称,就可以直接取得那个页面的数据。此外,如果你只输入网址,并没有输入网页名称,则服务器端会自动地判断(跟服务器自己的设置有关)该目录下是否有设置为默认的网页名称。下面我们还会再次提到 URI 。

•  端口:一般而言,各个协议都有其独特的端口,例如大家熟知的 http 使用的是端口 80 ,而 ftp 使用的是端口 21 ,所以,当连接某个网站时,输入 http://that.host.name 就会主动地利用端口 80 来尝试连接对方的主机。但是如果你不想要使用该端口呢?举个例子来说,假如你的网站使用的是端口 8080 来进行 WWW 的服务,那么除非你使用了防火墙进行端口对应,否则直接在地址栏输入“ http://your.host.name ”结果将无法连接到你的 WWW 服务器,因为它会主动连接到端口 80 ,所以这里就要告诉浏览器,向服务器请求服务的是哪一个端口。上面的例子中写成“ http://your.host.name:8080 ”才可以连接到对方的端口 8080 。

例如,我们通常是以 Web 接口进入中山大学的 FTP 网站,因为可以直接以浏览与搜索的功能去获取数据,因此,可以在 地址栏 输入“ http://ftp.nsysu.edu.tw ”以进入 WWW 界面的 FTP 网站。如果想要直接以 FTP 的模式来进行数据的浏览与传输该如何操作呢?直接在 地址栏 输入以下网址“ ftp://ftp.nsysu.edu.tw ”。你是否发现两者显示的不太相同?那是因为我们所连接的主机的协议是 ftp 的缘故,所以主机响应的数据当然就不同。请特别留意这种格式。

18.1.2 客户端如何向服务器端请求数据

WWW 是通过什么样的协议来传输数据的呢?注意观察 地址栏 的 http 。 WWW 是使用 http 协议来传送数据的, HTTP 是 HyperText Transfer Protocol (超文本传输协议)的简写,是目前 WWW 数据传输的主流协议。在网站上供人浏览的网页大部分需要符合 HTML ( HyperText Markup Language ,超文本标记语言)的语法。也就是说,当在 地址栏 输入主机的网址之后:

1. 客户端先经过 DNS 解析得到 WWW 主机的 IP ,然后会发出一个数据包,以 http 协议联系到 WWW 主机,告知 WWW 主机要以 http 的方法来取得数据。这个时候使用的是 TCP 协议,亦即需要经过三次握手的过程;

 

2. WWW 主机接收到这个数据包之后,会根据客户端的请求,提供相关的信息来响应,大部分的情况下皆是使用 http 的协议传送具有 HTML 语法的网页数据到客户端的浏览器上;

3. 最后客户端的浏览器将 HTML 的语法经过解析后,以相关的画面来显示到屏幕上,以供用户来查看。

这就是主要的流程,不过,从客户端传到 WWW 主机,与 WWW 主机响应的过程中,包含哪些可能的动作呢?

•  GET :这是最常见的,就是客户端向 WWW 主机请求的资源,也可以看成客户端从主机获取的数据;

•  HEAD :主机端响应给客户端的一些数据文件头;

•  POST :客户端传送到 WWW 主机端的数据;

•  OPTIONS :主机端响应给客户端的一些允许的功能与方法;

•  DELETE :删除某些资源的方法。

大致上就有这些功能,当然最主要的就是 GET 的功能,毕竟我们接入 WWW 主机就是为了获取数据。要记住的是,因为下面我们可能会去分析网站上的数据,所以,你必须要了解一下什么是 GET 或 HEAD 等的含义,不然很多东西都很难理解。


 
  上一页 下一页