网站开发快速入门教程-3

news/2024/5/14 13:12:44/文章来源:https://blog.csdn.net/deepfuture/article/details/83644430

声明:本网站开发快速入门教程系列为刘兴(http://deepfuture.iteye.com/)整理,如果转载请注明转载来源

========================================================

WEB服务器原理

您是否曾经对将此网页传送给您的机制感到好奇?假设此刻您正坐在计算机前在浏览器中查看这个网页。在您单击这个网页的链接或键入它的统一资源定位符URL)时,屏幕后究竟执行了什么­样的过程才把这个网页传送到您的屏幕上的?

如果您曾经对这个过程感到好奇,或者希望知道您之所以能在网上冲浪的一些特定机制,那就请继续阅读。在本文中,您将了解Web服务器是如何把网页传送到您家、您的学校或办公室的。让我们开始吧!

假设您正坐在计算机前上网,这时接到朋友的电话说:我刚刚读了一篇精彩的文章!请键入这个URL查看一下。网址是 http://www.howstuffworks.com/Web-server.htm于是您将该URL键入您的浏览器并按下回车键。神奇的是,无论这个URL位于世界的哪个角落,该网页都会出现在您的屏幕上。

以下示意图尽可能浅显地显示了将网页传送到屏幕上的步骤:

 

您的浏览器建立了与Web服务器的连接,请求一个网页并收到了该网页。

在下一页中,我们将更深入地探讨。

如果您希望更详细地了解将网页传送到计算机屏幕上的过程,下面就是幕后发生的基本步骤:

*  浏览器将URL分解为三个部分:

1.  协议(“http”

2.  服务器名(“www.howstuffworks.com”

3.  文件名(“Web-server.htm”

*  浏览器与名称服务器通信,将服务器名“www.howstuffworks.com”转换成IP地址,服务器使用该地址连接到服务器计算机。

*  之后,浏览器以该IP地址在端口80上建立与服务器的连接。(我们将在本文的稍后部分讨论端口。)

*  浏览器按照HTTP协议向服务器发送GET请求,请求“http://www.howstuffworks.com/Web-server.htm.”文件(请注意,使用GET请求时,可能会从浏览器向服务器发送Cookie,有关详细信息,请参见网络Cookie工作原理。)

*  之后,服务器会将该网页的HTML文本发送到浏览器。(Cookie也可能通过网页的标头从服务器发送到浏览器。)

*  浏览器读取HTML标记并设置网页的格式,最后显示在屏幕上。

如果您以前从来没有研究过这个过程,那么您将会遇到很多新词汇。要详细理解整个过程,您需要学习有关IP地址、端口、协议等内容。后面的章节将为您提供完整的说明。

那么什么是互联网?互联网是由千百万台计算机组成的庞大集合,所有的计算机都在计算机网络上链接在一起。该网络能让所有的计算机互相通信。家庭计算机可以使用能与互联网服务提供商(ISP)通信的电话线调制解调器DSL电缆调制解调器与互联网链接。企业或大学里的计算机通常有网络接口卡(NIC),可以将该计算机连接到企业内的局域网LAN)。之后,企业可以使用如T1线路这样的高速电话线路将其LAN连接到ISPT1线路每秒钟可以处理大约150万比特的数据,而使用调制解调器的普通电话线路通常每秒钟可以处理35万比特的数据。

ISP之后再与更大的ISP连接,而最大的ISP维护整个国家或地区的光纤构架。世界各地的构架通过光纤、海底电缆或卫星链接而连接起来。这样,互联网上的每台计算机就可以与互联网上的每台其他计算机连接起来。

 

一般说来,互联网上的所有计算机可以分成两种类型:服务器和客户端。向其他计算机提供服务(如Web服务器或FTP服务器)的计算机是服务器。而连接到服务器上获取服务的计算机称为客户端。当您连接到雅虎阅读一个网页时,雅虎将提供一台计算机(很可能是很大的计算机群集)在互联网上使用,以便为您的请求提供服务。而雅虎提供的这台计算机就是服务器。另一方面,您的计算机有可能没向互联网上的其他人提供任何服务。因此,它是一台用户计算机,也称为客户端。一台计算机既是服务器也是客户端的情况是可能的,也是常见的,但出于本文的目的,您可以姑且认为大多数计算机不是服务器就是计算机。

服务器计算机可以在互联网上提供一种或多种服务。例如,服务器计算机上运行的软件可以使该服务器计算机成为Web服务器、电子邮件服务器和FTP服务器。带着特定目的访问服务器计算机的客户端也是如此,因此,客户端会将其请求定向到总体服务器计算机上运行的特定软件服务器。例如,如果您正在计算机上运行Web浏览器,那么您的计算机很可能是要与服务器计算机上的Web服务器通信。您的Telnet应用程序将要与Telnet服务器通信,您的电子邮件应用程序将要与电子邮件服务器通信,如此等等。

为了能直接找到这些计算机,互联网上的每台计算机均指定有一个唯一的地址,称为IP地址IP代表互联网协议,这些地址都是32位数字,通常用4个由带小数点的十进制数字组成的八位字节来表示。典型的IP地址如下所示:

IP地址中的4个数字称为八位字节,这是因为它们可能是从0255之间的值,即每个八位字节有28种可能性。

互联网上的每台计算机都有一个唯一的IP地址。服务器具有静态IP地址,不会经常变化。通过调制解调器拨号连接的家庭计算机的IP地址通常是在该计算机拨入时由ISP指定的。该IP地址对于该次会话是唯一的,但是在该计算机下次拨入时,这个地址可能会不同。这样,ISP就只需为每个支持的调制解调器分配一个IP地址,而不是为每个客户都分配一个IP地址。

如果您使用的是Windows计算机,则可以通过WINIPCFG.EXE(对于Windows 2000/XP则是IPCONFIG.EXE)命令查看有关计算机的大量互联网信息,包括您当前的IP地址和主机名。在UNIX计算机上,在命令提示符下键入nslookup和类似www.howstuffworks.com这样的计算机名(例如“nslookup www.howstuffworks.com”)即可显示该计算机的IP地址。您也可以使用hostname命令来了解您的计算机的名称。(有关IP地址的更多信息,请参见IANA。)

至于互联网上的计算机,要与服务器通信,只要有IP地址就够了。在某些服务器上,仅有IP地址是不够的,但多数大型服务器均是如此——请继续阅读以了解详细信息。

          216.27.61.137

因为大多数人很难记住组成IP地址的一大串数字,又因为IP地址有时需要更改,所以互联网上所有的服务器还有易读的名称,称为域名。例如,www.howstuffworks.com就是一个永久性的易读名称。对我们中的大多数人来说,记忆www.howstuffworks.com要比记忆209.116.69.66更容易。

www.howstuffworks.com这个名称实际上分为3部分:

1.  主机名(“www”

2.  域名(“howstuffworks”

3.  顶级域名(“com”

“.com”域内的域名由名为VeriSign的注册公司管理。VeriSign也管理“.net”域名。其他的注册器(如RegistryProNeuLevelPublic Interest Registry)则管理其他的域(如.pro.biz.orgVeriSign创建顶级域名并保证在一个顶级域内的所有域名都是唯一的。VeriSign还维护每个网站的联系信息并运行“whois”数据库。主机名是由托管该域的公司创建的。“www”是很常见的主机名,但是现在很多地方将其省略,或者用一个指示该网站特定领域的不同的主机名来取代。例如在encarta.msn.com中,将MicrosoftEncarta电子百科全书的域名“encarta”指定为主机名以取代“www”。 一组称为域名服务器DNS)的服务器可以将易读的域名映射到IP地址。这些服务器是可以将域名映射到IP地址的简单数据库,它们分布在互联网上的各个地方。多数单独的公司、ISP和大学均维护小型的名称服务器,以将主机名映射到IP地址。还有中央名称服务器,它们使用VeriSign提供的数据将域名映射到IP地址。

如果您将URL“http://www.howstuffworks.com/Web-server.htm”键入到浏览器中,浏览器会提取名称“www.howstuffworks.com”并将其传递给域名服务器,域名服务器将返回www.howstuffworks.com的正确IP地址。要得到正确的IP地址,可能需要使用多个名称服务器。例如,在www.howstuffworks.com的例子中,用于“.com”顶级域的名称服务器能够辨别知道主机名的名称服务器的IP地址,而由HowStuffWorks ISP操作的、对该名称服务器的查询,则可以为HowStuffWorks服务器计算机提供实际的IP地址。

UNIX计算机上,您可以使用nslookup命令来访问同样的服务。只要在命令行中键入一个名称,如“www.howstuffworks.com”,该命令即会查询名称服务器并向您提供相应的IP地址。

因此归结如下:互联网由无数台计算机组成,每台计算机各自具有唯一的IP地址。这些计算机中有许多是服务器计算机,也就是说它们能向互联网上的其他计算机提供服务。您可能已经听说过这些服务器:电子邮件服务器、Web服务器、FTP服务器、Gopher服务器和Telnet服务器等,这里仅举几个例子。所有这些都是由服务器计算机提供的。

任何服务器计算机都使用编号的端口向互联网提供其服务,服务器上可用的每项服务对应于一个端口。例如,如果一台服务器计算机同时运行Web服务器和FTP服务器,则Web服务器通常位于端口80上,而 FTP 服务器位于端口21上。客户端使用特定的IP地址和特定的端口来连接服务。

人们熟知的每项服务都在一个为人熟知的端口号上提供。下面是一些常用的端口号:

*  echo 7

*  daytime 13

*  qotd 17(日期的引用)

*  ftp 21

*  telnet 23

*  smtp 25(简单邮件传送,即电子邮件)

*  time 37

*  nameserver 53

*  nicname 43 (Who Is)

*  gopher 70

*  finger 79

*  WWW 80

如果服务器计算机在一个端口上接受来自外部世界的连接,并且防火墙未保护此端口,那么您可以从互联网上的任何地方连接到此端口并使用此项服务。请注意,这里并未强制Web服务器必须使用端口80。如果您要设置自己的计算机并在其上加载Web服务器软件,那么您也可以将Web服务器放在端口918上,如果需要,您还可以将它放在任何其他未使用的端口上。之后,如果您的计算机名为xxx.yyy.com,互联网上的其他人可以使用http://xxx.yyy.com:918这个URL连接到您的服务器上。“:918”显式指定了端口号,其他人如果要访问您的服务器,就必须将它包括在URL内。如果没有指定端口号,则浏览器将将假定服务器使用的是人们熟知的端口80

客户端与某个端口的服务程序连接以后,会使用一个特定协议获得服务。协议是想要使用某一服务的某一方与该服务之间进行通信的一种预定义方式。某一方可能是一个人,但在更多的情况下,它是一个计算机程序,例如Web浏览器。协议通常是文本,简单说明客户端和服务器进行会话的方式。

也许最简单的协议是日期时间协议。如果您在一台支持日期时间服务器的计算机上连接到端口13,该服务器将为您发送它的当前日期和时间,然后关闭连接。协议是如果你连接到我,我将为你发送日期和时间,然后断开连接。大多数UNIX计算机都支持此服务器。如果您想尝试一下,可以用Telnet应用程序连接到此服务器。在UNIX中,会话过程如下所示:

%telnet Web67.ntx.net 13
Trying 216.27.61.137...
(正在尝试 216.27.61.137...
Connected to Web67.ntx.net.
(已连接到 Web67.ntx.net。)
Escape character is '^]'.
(转义字符为“^]”。)
Sun Oct 25 08:34:06 1998
19981025日星期日 08:34:06
Connection closed by foreign host.
(连接已被外部主机关闭。)

Windows计算机上,您可以通过在MSDOS提示符下键入“telnet Web67.ntx.net 13”来访问此服务器。

在本示例中,Web67.ntx.net是该服务器的UNIX计算机,13是日期时间服务的端口号。Telnet应用程序连接到端口13telnet会自然连接到端口23,但您可以将其定向为连接到任何端口),之后,服务器会发送日期和时间并断开连接。Telnet的大多数版本均允许您指定端口号,所以您可以使用您的计算机上可用的任何版本的Telnet来尝试。

大多数协议涉及的内容并不仅限于日期时间,并在公开可用的征求意见(RFC)文档中进行指定(有关所有RFC的完整存档,请访问http://sunsite.auc.dk/RFC/)。互联网上的每个Web服务器都遵循HTTP协议,该协议在1991年定义的原始HTTP中进行了精辟的总结。HTTP服务器可以理解的最基本的协议形式只包括一个命令:GET。如果您连接到一个能理解HTTP协议的服务器并让它“GET文件名,该服务器将做出相应的反应,为您发送指定文件的内容,然后断开连接。下面是一个典型的会话:

%telnet www.howstuffworks.com 80
Trying 216.27.61.137...
(正在尝试 216.27.61.137...
Connected to howstuffworks.com.
(已连接到 howstuffworks.com。)
Escape character is '^]'.
(转义字符为“^]”。)
GET http://www.howstuffworks.com/

    ()

  ...

Connection closed by foreign host.(连接已被外部主机关闭。)

在原始HTTP协议中,您所要发送的只是实际文件名,比如“/”“/Web-server.htm”。经过后来的修改后,它可以发送完整的URL。这使得托管虚拟域(许多域存在于单一的计算机上)的公司可以为他们托管的所有的域使用一个IP地址。其结果是数百个域都托管在209.116.69.66上,而这正是HowStuffWorksIP地址。

现在您对互联网已经有了相当的了解。您知道在将一个URL键入浏览器时,会发生以下步骤:

*       浏览器将URL分解为三个部分:

1.  协议(“http”

2.  服务器名(“www.howstuffworks.com”

3.  文件名(“Web-server.htm”

*       浏览器与名称服务器通信,将服务器名“www.howstuffworks.com”转换成IP地址,服务器使用该地址连接到服务器计算机。

*       之后,浏览器以该IP地址在端口80上建立与Web服务器的连接。

*       浏览器按照HTTP协议向服务器发送GET请求,请求“http://www.howstuffworks.com/Web-server.htm”文件(请注意,使用GET请求时,可能会从浏览器向服务器发送Cookie,有关详细信息,请参见网络Cookie工作原理。)

*       服务器会将该网页的HTML文本发送到浏览器。(Cookie也可能通过网页的标头从服务器发送到浏览器。)

*       浏览器读取HTML标记并设置网页的格式,最后显示在屏幕上。

*       从上面的说明中您可以看出,Web服务器可以是一种相当简单的软件。它获取由GET命令传入的文件名,检索该文件并沿着线路将该文件发送到浏览器。如果您考虑了处理端口和端口连接的所有代码,您就可以轻松地创建一个C程序,用不到500行代码来实现一个简单的Web服务器。当然,一个完备的企业级Web服务器要更复杂些,但其基本原理非常简单。

*       多数服务器都会向服务进程中添加一定的安全措施。例如,如果您曾访问过某个网页,该网页使浏览器弹出一个对话框,要求您填写姓名和密码,这意味着您遇到的是受密码保护的网页。服务器让该网页的所有者维护一份允许访问该网页的人的姓名和密码的列表;服务器只让知道正确密码的人查看该网页。更为高级的服务器则添加更严密的安全措施来建立服务器和浏览器之间的加密连接,以便可以在互联网上发送像信用卡号码这样的敏感信息。

*       实际上那就是提供标准静态网页的Web服务器的所有机理。静止网页是指那些除非创作者进行编辑,否则不会更改的网页。

那动态的网页会是什么情况呢?例如:

*  任何留言薄都允许您在HTML表单中输入消息,在下一次查看该留言薄时,网页将包含新输入的内容。

*  Network Solutions上的whois表单允许您在表单上输入域名,返回的网页将根据输入的域名而有所不同。

*  任何搜索引擎都允许您在HTML表单上输入关键字,然后它将根据您输入的关键字动态创建页面。

在所有这些情况下,Web服务器不仅仅是在寻找文件。实际上它是在根据查询的具体情况来处理信息并生成网页。几乎在所有的情况下,Web服务器都使用CGI脚本来完成这一过程。CGI脚本是另外一个专门的主题,在博闻网文章CGI脚本是怎么回事中说明。

有关Web服务器及相关主题的更多信息,请查看下一页上的链接。

那动态的网页会是什么情况呢?例如:

*  任何留言薄都允许您在HTML表单中输入消息,在下一次查看该留言薄时,网页将包含新输入的内容。

*  Network Solutions上的whois表单允许您在表单上输入域名,返回的网页将根据输入的域名而有所不同。

*  任何搜索引擎都允许您在HTML表单上输入关键字,然后它将根据您输入的关键字动态创建页面。

在所有这些情况下,Web服务器不仅仅是在寻找文件。实际上它是在根据查询的具体情况来处理信息并生成网页。几乎在所有的情况下,Web服务器都使用CGI脚本来完成这一过程。CGI脚本是另外一个专门的主题,在博闻网文章CGI脚本是怎么回事中说明。

常用开发工具及详解:

php

jsp

dreamwaver

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_805924.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线生成彩字在线制作动态特效文字的2个网站

1Textanim - 是一个在线生成动态文字效果的站点,操作简单,输入想要生成的英文字母或单词,选择字体和彩字样式,就能可以轻松生成。提供了上百种的花纹可以选择使用。提供设置项包括:1.字体2.字体大小3.背景颜色4.自动大小5.影音位置6.动画延时…

设计人员一些常用的网站

亚洲ci网——http://www.asiaci.com/ (点击这里) 中国ci网—— http://www.cn-cis.com/ (点击这里) 中国包装设计网—— http://www.chndesign.net/ (点击这里) limon企业识别—— http://www.limon.com.cn/ (点击这里) 中国色彩—— http://www.cncolor.net/ (点击这里) logo吧…

OpenSource事业受挫,开源网站BerliOS因资金问题年底将关闭

BerliOS.de今天释出的新闻(https://developer.berlios.de/forum/forum.php?forum_id37450)我之前在这个网站上的资源全是开源的,代码由世界各地的爱好者编写(主要还是欧洲的),project的文档什么的都很详细…

scrip如何显示值到网页_在线免费用!这个网站帮你测试响应式网页效果

链接:https://www.uisdc.com/everysize#现在很多人是通过智能手机或平板电脑浏览网页,在网页设计上就要考量到如何让不同尺寸屏幕大小也能正常显示,以往会制作成电脑版和手机版两种格式,后来多半以响应式网页设计(Responsive web …

Next Door,基于“邻居”的社交网站

编者按:社交网站(SNS)是旨在帮助人们建立社会性网络的互联网应用服务,本文突出介绍了与Facebook等基于“朋友”关系的社交网站大相径庭基于“邻居”的一种社交网站。网友们众说纷纭,有的说“邻居关系特殊,应该鼓励线下交流”&…

如何在网站集的首页上显示出我的所有任务

在网站集的首页添加“内容查询 Web 部件”部件,并修改其属性如下,其他的保持默认值。 设置完后就能正常显示了,用该部件还能实现其他的信息显示。有一点需要注意的是,用系统帐户身份浏览时筛选条件“分配对象”将造成查询不到任何…

网站云服务器有5g的吗6,网站云服务器有5g的吗

网站云服务器有5g的吗 内容精选换一换服务器迁移通常有三种手段:全新部署业务、主机迁移服务、镜像迁移,如表1所示。对于华为云上云服务器的跨帐号跨区域迁移,建议采用镜像迁移方式。跨帐号跨区域迁移云服务器的方案为:帐号A将区域…

ASP.NET程序员必须知道的10个网站

当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一,或者想要成为其中之一的话,我下面将要列出的每一个站点都应该是你的最爱,都应该收藏到书签中去。 对于不熟悉.NET技术的朋友,需要说明一下,.NET提供…

发布silverlight网站或包含有Silverlight应用的网站到IIS中的问题

如果发布Silverlight网站或者是网站中包含Silverlight应用程序到IIS5或者IIS6中会发现无法浏览Silverlight应用程序(win7中自带的IIS7可以直接发布不会出现问题),一开始我以为是安装Silverlight插件的版本问题,安装了几个版本都无…

8个超好用的免费工具/软件/网站(一定有你要的)

分享8个非常好用的网站,能满足你的各种需求,这些工具都是免费的,需要的自取吧,长按网址复制,然后在浏览器中打开就好啦~ 1. 在线免费视频录制工具: ShowMore。支持同步高清录制屏幕,摄像头,麦克…

k-近邻算法(改进约会网站的配对效果)

示例背景: 我的朋友海伦一直使用在线约会网站寻找合适自己的约会对象。尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人。经过一番总结,她发现曾交往过三种类型的人: (1)不喜欢的人; &…

如何从优酷、土豆、56.com/等网站下视频

写这篇博客的原因本人比较喜欢在网上看一些小视频,搞笑视频、微电影什么的,比如像人人的分享视频、优酷的TED视频和最近出的的原创经典神马的,当你看到一个比较好的视频的时候,自然是想把他下下来收藏喽,下面是我收集的…

【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构

随笔- 80 文章- 1 评论- 531 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构 一、业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长。特别是在用户访问高…

ASP.NET网站实现中英文转换(本地化资源)

主要内容: 1. 简单例子 2. 进一步认识Localization 3. 语言转换 4. 解决方案 一. 简单例子 下面通过一个简单的例子来说明利用Localization来实现本地化是那么的简单,首先我们打开Visual Studio 2005,新建一个名叫Localization的工程&#xf…

大型网站框架的演变

大型网站框架的演变 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少…

10个提供免费PHP脚本下载的网站

1.PHP Junkyard 这里提供免费的PHP脚本下载。包括PHP资源,教程,文章等等。 2.Free-Php.net Free-Php.net 为你提供分类列表,包括免费的PHP脚本,商业PHP脚本,PHP资源,PHP教程,网页资源&#xff0…

Https网站搭建——通过https://localhost:8443访问tomcat首页

图片大致介绍了Https浏览器与服务器握手的过程,涉及到的名词:证书、Hash算法、随机数密码、公钥加密、私钥解密、握手消息、hash验证、摘要 tomcat服务器配置可以实现https双向认证,简单起见,我们只实现单向认证,过程&…

网站流量分析及网络营销方法-小经验

做了一段网站,经常上站长网。也学习到了不少东西,但是本人还是和大家一样始终是一个技术出身的programmer. 所以有小经验的话,还是应该写在博客园,给自家人看。管理大师德鲁克教导我们:没有测量就没有管理(…

Linux下Web服务器应用之网站安全-https

Linux下Web服务器应用之网站安全(https)解决方案 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础…

网站访问统计系统 piwik

piwik官网地址:http://piwik.org/ Piwik是一套基于PhpMySQL技术构建的开源网站访问统计系统,前身是phpMyVisites。Piwik可以给你详细的统计信息,比如网页 浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术&…