如何用Java实现Web服务器
如何用Java实现Web服务器 一、HTTP协议的作用原理
WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:
(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:
GET 路径/文件名 HTTP/10
文件名指出所访问的文件,HTTP/10指出Web浏览器使用的HTTP版本。
(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
Windows下的WWW服务器以其架设方便、操作简单赢得了很多人的青睐,下面笔者将以Windows Server 2003为例来介绍如何配置一个Web服务器,望能对刚入门的网管员有所帮助。
一、架设Web服务器
默认安装的Windows Server 2003没有配置IIS服务,需要我们手工安装。进入控制面板,执行“添加或删除程序→添加/删除 Windows 组件”进入Windows组件向导窗口,勾选“应用程序服务器→Internet 信息服务”,“确定”后返回Windows组件向导窗口点击“下一步”即可添加好IIS服务。在控制面板的管理工具中执行“Internet 信息服务(IIS)管理器”进入IIS管理器主界面(如图),在图上可以看出Windows Server 2003下的IIS默认支持静态网站,若要执行动态页面还需设置Web服务扩展属性,比如要执行ASP网站则要在“Web服务扩展”列表中选中“Active Server Pages”然后单击“允许”按钮来启用该功能。接下来就可以具体配置Web站点了。
1 网站基本配置。在“默认网站”的右键菜单中选择“属性”进入“默认网站属性”窗口,在“网站”选项卡上的“描述”里可以为网站取一个标示名称,如果本机分配了多个 IP 地址,则要在IP 地址框中选择一个赋予此Web站点的IP地址;然后进入“主目录”选项卡中指定网站Web内容的来源并在“文档”中设置好IIS默认启动的文档。单击“应用”按钮后就可以使用http://127001来验证网站了。
2 网站性能配置。进入“性能”选项卡,在这里可以对网站访问的带宽和连接数进行限定,以更好地控制站点的通信量,如果是多站点服务器,通过对一个站点的带宽和连接数限制可以放宽对其他站点访问量的限制和为其他站点释放更多的系统资源。(提示:在实际的限定操作中我们要根据网络通信量和使用变化情况进行调整。)
3 网站的安全性配置。为了保证Web网站和服务器的运行安全,可以在“目录安全性”选项卡上为网站进行“身份验证和访问控制”、“IP地址和域名限制”的设置,不过如果没有别的要求一般采用默认设置就可以了。
二、IIS的备份和移植
为了防止系统损坏对IIS配置的影响,我们可以采用选择本地计算机右键菜单中的“所有任务→备份/还原配置”来备份IIS,但这种操作如果遇到重装Web服务器或将一台Web服务器移植到另一台Web服务器时就无能为α耍 我们可以使用IIS备份精灵来实现IIS的备份和移植了。
启动软件,在IIS备份精灵的站点列表上就会列出IIS服务器上配置的各种站点了,勾选你要备份的站点然后单击“导出站点”按钮,在弹出的“导出IIS站点”窗口上选择好文件保存路径,“确定”后,站点配置信息就会以一个TXT文本文件保存下来了。
在重装IIS服务器需要导入站点信息时,运行IIS备份精灵,单击“导入站点”按钮在弹出的“IIS导入站点”窗口上选择要导入的事先备份好的IIS站点信息文件,“确定”后即可导入。若需要移植IIS站点信息应先把备份的站点信息文件复制到目的机器上,然后在这个机器上再下载安装IIS备份精灵,执行“导入站点”操作就可以了。
怎么实现一个网站的WebServeWeb服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。
定时器Timer
如果一个请求在建立连接后迟迟没有发送数据,或者对方突然断电,应该如何处理我们需要实现定时器来处理超时的请求。Vino定时器的实现参考了Nginx的设计,Nginx使用一颗红黑树来存储各个定时事件,每次事件循环时从红黑树中不断找出最小(早)的事件,如果超时则触发超时处理。为了简化实现,在Vino中,我实现了一个小顶堆来存储定时事件,如果被处理的定时事件同时支持长连接,那么在该请求处理完毕后会更新该请求对应的定时器,也就是重新计时。定时器相关代码见vn_event_timerh和vn_event_timerc。
HTTPParser
由于网络的不确定性,我们并不能保证一次就能读取所有的请求数据。因此,对于每一个请求,我们都会开辟一段缓冲区用于保存已经读取到的数据。同时,我们需要同时对读取到的数据进行解析,以保证读取到的数据都是合理的数据,例如,假设目前缓冲区内的数据为GET/indexhtmlHTT,那么下一次读取到的字符必须为P,否则,应立即检测出当前请求是一个异常的请求,并主动关闭当前的连接。
基于以上分析,我们需要实现一个HTTP状态机(Parser)来维持当前的解析状态,Vino状态机的实现参考了Nginx的设计,并对Nginx的实现做了简化。HTTPParser相关代码见vn_http_parseh和vn_http_parsec。
MemoryPool
我们一般使用malloc/calloc/free来分配/释放内存,但是这些函数对于一些需要长时间运行的程序来说会有一些弊端。频繁使用这些函数分配和释放内存,会导致内存碎片,不容易让系统直接回收内存。典型的例子就是大并发频繁分配和回收内存,会导致进程的内存产生碎片,并且不会立马被系统回收。
使用内存池分配内存,可以在一定程度上提升内存分配的效率,不需要每次都调用malloc/calloc函数。同时,使用内存池使得内存管理更加简单。在Vino中,针对每一个请求,Vino都会为其分配一或多个内存池(各个内存池形成一个单链表),在请求处理完毕后,一并释放所有的内存。
Vino内存池的实现依旧参考了Nginx的实现,并做了简化,MemoryPool相关代码见vn_palloch和vn_pallocc。
其他
在开发Vino的过程中,还有许多需要考虑和权衡的地方。响应请求时,如果用户请求的是一个很大的文件,导致写缓冲区满,我们如何更好的设计响应缓冲区如何更高效的设计底层数据结构(如字符串、链表、小顶堆等)如何更优雅的解析命令行参数如何对特定信号进行处理如何更健壮的处理错误信息当代码的数量达到一定程度后,如何更快的定位异常代码
Vino的开发&重构暂时告一段落,源码放在了GitHub上。当然,Vino还有许多不足之处,以及未实现的特性。
仅支持HTTPGET方法,暂不支持其他HTTPmethod。
暂不支持动态请求的处理。
支持的HTTP/11特性有限。
以上就是小编对于怎么实现一个网站的WebServe的全部解答。
网站一个网站利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:
python -m Web服务器模块 [端口号,默认8000]
例如:
python -m SimpleHTTPServer 8080
然后就可以在浏览器中输入
h ttp://loca lhost:端口号/路径
来访问服务器资源。
例如:
h ttp://local host:808 0/indexh tm(当然indexhtm文件得自己创建)
其他机器也可以通过服务器的IP地址来访问。
这里的“Web服务器模块”有如下三种:
BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler。
SimpleHTTPServer: 包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。
CGIHTTPServer: 包含处理POST请求和执行CGIHTTPRequestHandler类。
IIS5上手指南
安装IIS5
通过“开始”→“设置”→“控制面板”→“添加/删除程序”来安装:点击“添加/删除程序”窗口中的“添加/删除Windows组件”,系统经过一段时间的搜索之后会显示一个Windows组件的选择窗口,钩选其中的“Internet信息服务(IIS)”,然后按照提示一步一步安装即可完成。
Web服务初阶
安装好IIS之后,Web发布已经作为一个系统服务程序启动了,下面就来看看如何创建一个简单的Web服务器。
1通过“开始”→“程序”→“管理工具”→“Internet服务管理器”可以启动“Internet信息服务”管理工具,IIS的所有设置就都在这里了。
2在窗口左边你的主机名上单击鼠标右键,依次选择“新建”→“Web站点”来建立一个你自己的Web服务器。
3在接着出现的“Web站点创建向导”中进行“下一步”并在新出现的窗口中填入你所要创建的站点说明,本文以PCD为例。
4在“IP地址和端口设置”窗口中选择你的IP地址,其它端口和主机头项这里使用默认即可(后面会有详述)。
5“下一步”到“Web站点主目录”设置窗口,其中填入本机上放置网站文件的目录(其实局域网中也可以设置到同域的其它主机,这里不详述),你也可以通过“浏览”按钮来查找,本文以E:Pcd目录为例。
6接下来是设置“Web站点访问权限”,按照默认设置即可,同时你已基本建立了一个Web站点。下面就可以在你的主目录中放入各忠趁嫖募帽鹑嗽阡榔髦惺淙肽愕肾P地址进行访问了。
网站不是建起来就了事,丰富精彩的网页内容才是最重要的。当然,合理的设置也是必不可少的:
1更改用户主目录——站点主目录是在创建时指定的,但你也可以后来修改。在“Internet信息服务”管理工具窗口左边你所建立的站点名字上点击鼠标右键并选择“属性”(以后所有的设置都是在这里进行),在出现的“属性”窗口中选择“主目录”标签页面,改变其中的“本地路径”并“应用”即可。
2更改默认文档——默认文档就是Web服务的起始文件。举个例子,假设你的IP地址是20298123111,你指定的主目录是E:PCD,而此目录中有一个文件名叫“Defaulthtm”,这样,别人在浏览器中输入20298123111并回车时,他们打开的便是你电脑中E:PCDDefaulthtm这个文件,IIS其实自动在IP地址后添加了“/Defaulthtm”。IIS的默认起始文档是Defaulthtm及Defaultasp,如果你不喜欢,可以在站点属性的“文档”标签页面中自行添加并用旁边的箭头把它移到最前边。
3配置日志文件——日志文件是站点被访问的记录,通过设置可以记录来访问者的各种信息,其重要性不言而喻。其默认位置是WinNTSystem32LogFiles,有关它的设置在站点属性的“Web站点”标签页面,点击旁边的“属性”按钮可以进行日志记录间隔、日志文件保存路径及记录内容等的设置。
4更改网站目录属性——设想你的Web服务器就像一个博物馆,大部分页面允许所有人访问像是公众都可以参观博物馆陈列室的展品。但是,你也许要锁上某些特殊的房间,如办公室和实验室,不想公众参观这些房间;所以你也就需要设置网站各目录的访问权限。鼠标右击你网站中需要改变属性的目录并选择“属性”,在“目录”标签页中,你可以勾选各种属性的方框来设定,一般“目录浏览”最好不允许(默认是开放的,。另外,你也可以在“目录安全性”标签页面中设置验证控制及IP地址控制等。
Web服务进阶
其实上面的文章完全可以让你建立并维护一个普通的Web站点了,如果你还不满足,并希望了解一些在同一服务器上维护多个站点的技巧,下面的文字可以给你一些启发
一般说来,我们可以通过三种方法实现在同一台服务器上维护多个站点:分配端口、地址和主机头名。因为每个Web站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求:端口号、IP地址、主机头名。通过更改其中的一个标识,就可以在一台计算机上维护多个站点。
端口号
通过使用附加端口号,只需一个IP地址即可维护多个站点。访问者要访问站点时,需在IP地址后面附加端口号(默认Web站点除外,它使用端口80)。描绘了使用端口号维护多个Web站点的计算机。使用此方法维护多个站点要求访问者在端口号前键入实际的数字IP地址,不能使用主机名和“友好名称”,因此对于访问者来说比较麻烦。具体配置方法:鼠标右击“Internet信息服务”管理工具窗口右边的各站点名称并选择“属性”,在出现的“属性”设置窗口中选择“Web站点”标签页面,更改各站点对应的TCP端口即可。
多IP地址
要使用多IP地址,必须将主机名及其对应的IP地址添加到名称解析系统(通常是DNS)。此后访问者只需在浏览器中键入文本名称即可访问Web站点。如果使用多IP地址,则需要为每个IP地址附加一块网卡或者为同一块网卡绑定多个IP地址。描绘了使用多IP地址维护多个Web站点的计算机。
实际使用中你需要先设置多个IP地址,一网卡对应一IP地址相信大家都知道,而对于一网卡对应多个IP地址就需要改变网卡的TCP/IP设置:“开始”→“设置”→“网络和拨号连接”→“本地连接”→“属性”,选择“Internet协议(TCP/IP)”并点击“属性”按钮,在出现的“Internet协议(TCP/IP)属性”窗口中点击“高级”按钮,在这里就可以通过“添加”按钮为一块网卡设置多个IP地址。看到这里你也许对同一网卡多个IP地址的工作方式有些疑问,其实当你对外访问的时候,使用的只有第一个IP地址(别以为多设几个IP就能够隐藏自己的身份),但当外面对这些IP进行访问的时候,所设置的几个IP地址就都可以连接到你的电脑。
对于在IIS中为各站点设置不同IP地址就非常简单了:鼠标右击“Internet信息服务”管理工具窗口右边的各站点名称并选择“属性”,在出现的“属性”设置窗口中选择“Web站点”标签页面,更改各站点对应的IP地址即可。
主机头名
最后,也可以使用具有单个静态IP地址的主机头名维护多个站点。与以前的方法类似,也需要将主机名添加到名称解析系统(通常是DNS)。区别在于,一旦请求到达计算机,IIS将使用在HTTP头中传递的主机名来确定客户请求哪个站点。描绘了使用主机头名维护多个Web站点的计算机。
实际使用中你只需要鼠标右击“Internet信息服务”管理工具窗口右边的各站点名称并选择“属性”,在出现的“属性”设置窗口中选择“Web站点”标签页面,点击“高级”按钮,在“此Web站点有多个标识”栏中添加即可。
第一步:客户提出网站建设申请
1、客户根据自身情况提出网站建设基本要求
2、提供相关文本及资料
a公司文字资料、公司资料;
b网站实现功能需求;
c网站基本设计要求;
第二步:制定网站建设方案
1、双方就网站建设内容进行协商,修改、补充,并达成共识;
2、为客户制定《网站建设方案》;
3、双方确定网站建设方案的具体细节及价格;
第三步:签署协议,支付预付款
1、双方签订《网站建设协议》;
2、客户提供更为详尽的资料(如需拍照,我方可免费上门进行数码拍摄);
第四步:客户审核初稿,经确认后定稿
1、根据《网站建设方案》完成初稿设计;
a首页风格设计;
b功能栏目设定;
c网站架构图;
2、客户审核确认初稿设计;
3、我方完成整体网站制作;
第五步:网站测试、客户网上浏览、验收、支付余款
1、客户根据协议及内容进行验收工作;
2、验收合格,由客户签发“网站建设验收合格确认书”;
3、客户支付余款;
4、我方为客户开通协议内容服务;
第六步:网站后期维护工作
1、向客户提供《网站维护说明书》
2、我方根据《网站建设协议》及《网站维护说明书》相关条款对客户网站进行维护和更新。
1、域名申请
通过注册域名,使企业在全球Internet上有唯一标识,也是社会各用户浏览该企业网站的门牌号和进入标识。由域名构成的网址会像商标那样,在互联网上广为流传,好的域名有助于你将来塑造自己在网上的国际形象。而同时域名在全世界具有唯一性,域名的资源又比较有限,谁先注册,谁就有权使用,所以你现在就应该考虑,是否要保护你在Internet上的无形资产。常见的com为国际域名,而comcn则为国内域名。定义域名除了要考虑公司的性质以及信息内容的特征外,还应该使这个名字简洁、易记、具有冲击力。
2、网络平台的建立
有了自己的域名这个门牌号码后,您就需要一个空间盖房子建立自己的公司,而这个空间在Internet上就是服务器。通常情况下,有以下几种方式可供企业选择。
虚拟主机方式:所谓虚拟主机是使用特殊的软硬件技术,把每台计算机主分成一台"虚拟"的主机,在外界看来,虚拟主机与真正的主机没有任何区别,我们建议企业上网采用虚拟主机方式。一般虚拟主机提供商都能向用户提供10兆、30兆、50兆直到一台服务器的虚拟主机空间。用户可视网站的内容设置及其发展前景来选择。一页网页所占的磁盘空间大约20-50千字节,10兆大约可以放置200-500页,但如果你对网站有特殊的要求,如较多、动画较多、需要文件下载或有数据库等,就需要多一些空间(大家可以到『免费资源』去看一下,那里有很多免费空间)。
独立的服务器:对于经济实力雄厚且业务量较大的企业,也可以购置自己独立的服务器,但这需要很高的费用及大量的人力、物力投入,合计很高的费用及大量的人力、物力投入,合计起来是虚拟主机的数十倍之多。
3、网页设计及维护
您可以自己设计网页也可以通过专业网页设计人才来制作。首先要确定整个网页系统的整体规划,所要介绍的内容范围和目的,之后要收集所有需要放在网站上的文本资料、等,将收集的材料提供给我们,剩下的交给我们的设计人员吧。根据公司业务范围确定是否采用中英两种版本,网页设计完成后下步最重要的工作就是及时更新网页内容,不能长时间不更换网页,造成“晒网”现象将影响网站的访问量。
4、网站宣传与推广
首先企业自身要有推广网站的意识:在任何出现公司信息的地方都加上公司的网址,如名片、办公用品、宣传材料、媒体广告等。此外网络广告和搜索引擎登记是目前网站主要的推广方式。您可以登陆我们韶关信息港或其它门户站点的黄金广告位,可以通过注册搜索引擎将你的站点登记到全球知名的服务站中去。这样一来,不但你的网站能够很容易地被人找到,而且访问者的数量也会激增。通过一些网站做友情链接等办法,可以显著地提高企业网站的知名度和访问量。
5、开展电子商务
制作网页的步骤一般分5步:
1、插入表格
2、输入文字
3、插入
4、插入链结
5、插入背景
(1)插入背景
(2)插入背景音乐
1、插入表格
用表格把页面上的文字、等框定起来,限定各自的位置
操作方法:
点击“插入表格”的工具图标,出现“表格--Web页对话框”
调整其中的行数、列数
点击“插入”
2、输入文字
输入你自己设计网页的文字内容
3、插入
插入选定的,起到装饰网页的作用
操作方法:
登陆
点击“图象”
在下方的方框中输入你想要的的名字(关键字)
选择你想要的图画
对准图画点击鼠标右键点击“复制”
回到HTML内容编辑器
把光标点击到你所要放的位置
对准光标点击鼠标右键点击“粘贴”
的大小可以任意调整
操作方法:
对准HTML内容编辑器中的点击(出现9个小方框在的周围)
对准上下或左右的中间的小方框(光标会变成双箭头)
按住鼠标左键不要放手,拖动。大小合适时松开
4、插入链结
操作方法:
选中(按住鼠标左键拖动涂黑)要进行链结的文字或
点击工具栏中的蓝色小球(超级链结)
(出现超级链结窗口)
在第二行URL(U):输入(你所要链结到哪儿去的)网址
如果你所要链结的网址你不知道或背不下来,那你就到那个网页把要链结的网址“复制”下来,然后回到URL(U)“粘贴”过来。用这种方法“粘贴”过来后要活动光标检查一下才能点“确定”
点击(超级链结窗口中的)“确定”
点击页面中的空白处,就可以看到要链结的文字或已经变成淡兰色,下面有一条下划线,这表明已经链结成功。
5、插入背景
(1)插入背景
操作方法:
打开yh178的网站
点击友情链接
点击“背景”
对准点击右键
点击“另存为”
出现“保存”的窗口
第一行的“保存在(I):选择你所放的位置(建议一般选择放在桌面,便于删除)
文件名(N):如果想改名字,删除原有文件名,重新输入
点击“保存(S)
(这样就已经存到计算机桌面上了)
回到HTML内容编辑器
点击工具栏中的第二排倒数第二个图标(背景)
(出现插入背景的窗口)
点击“浏览”
出现“选择文件”窗口
选择你刚才存到桌面上的代码,一点击自动出现在文件名(N)栏中
点击“打开(O)”
自动回到“插入背景”的窗口
点击“插入”
(背景会出现到你的网页中)
最后不要忘了把你所选的背景上传到“网页制作系统中”
(2)插入背景音乐
操作方法:
打开yh178的网站
点击"友情链接"
点击“背景音乐”
(出现歌曲列表)
试听点击左键
下载点击右键
对准所选曲目点击右键
点击“目标另存为(A)”
出现“另存为”窗口
第一行的“保存在(I):选择你音乐所放的位置(建议一般选择放在桌面,便于删除)
文件名(N):如果想改名字,删除原有文件名,重新输入
点击“保存(S)
(这样音乐就已经存到计算机桌面上了)
回到HTML内容编辑器
点击右键复制下面的格式:
<bgsoundsrc="mid"loop="-1">
把复制的格式点击右键粘贴到“插入Script代码”的方框中
在格式"与中间输入你所选音乐的代码即可
最后不要忘了把你所选的音乐上传到“网页制作系统中”
0条评论