web程序运行的工作原理
WEB应用时是基于HTTP协议的,而Http协议时一种超文本传输协议,是计算机在网络中通信的一种规则。
Http请求信息包括请求行、请求头、空行和消息体。从请求行里面可以得到Http的信息发送方式(方式有很多种,但通常是GET或POST中的一种),请求的URL,以及Http版本;请求头里面是一些客服端的信息,比如使用的是什么浏览器,可以接受那些类型的数据等等。
Http响应信息包括状态行、响应头、空行、消息体。状态行由Http协议版本、响应状态码和响应描述组成。
WEB服务器最早只能发送静态页面,为了解决这个问题,人们想到的办法是CGI通用网关接口,用于调用其他程序产生内容。但是并发量一旦比较高的时候,这种CGI就显得性能很差。不过这样的思想给后面的技术提供了思路。
WEB容器工作原理
市面上的javaweb容器常见的有两种,一种是jetty,一种是tomcat。要想用java实现web容器,首先要知道其工作原理。
以Tomcat为例,我们通常开发出来的war包,会放在tomcat中的webapp下面,tomcat会自动解压war包。解压完成后,其实就是一个servlet应用!换句话说,我们写的war包中的servlet应用只需要关注业务层面的,处理http等网络链接的事情交给都交给tomcat了,一个请求到达tomcat的流程如下图:
所以其实我们也可以手写一个web容器,只要能接收请求并转发给相应的servlet请求即可。
手写一个小的web容器
整体结构大致如下
1、写一个处理网络请求连接请求实体类、一个和网络请求连接响应实体类
2、写一个容器主类,包括启动监听端口等
3、写容器的接口,以及注解相关的url附加类便于让应用servlet
4、写一个app测试servlet,类似tomcat中跑的war包
如果你监听的端口是8888,那么就可以访问localhost:8888/app,就可以测试了
结语
java写web容器,其实没什么难的,简单的写一下了解一下原理即可,真实工作中是不建议自己写的,有很多问题会考虑不周的。关于web容器网上也有很多例子,可以借鉴了解一下。祝你学习愉快。
web服务器是基于网站架设的服务器,我们平时可以浏览的网页都是在别人的服务器上面保存的文件.现在的服务器后台还包括数据库,用来更新前台的页面.
web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
服务器分很多种类,包括web,ftp,流媒体,短信等服务器.通俗的说web服务器是基于网站架设的服务器,我们平时可以浏览的网页都是在别人的服务器上面保存的文件.现在的服务器后台还包括数据库,用来更新前台的页面.
IIS是Microsoft公司的它是一个收费的服务器软件,而Apache是基于开源代码的服务器软件,它的核心都是用代码来实现的,而且是开源的可以免费使用.linux上架设web服务器用apache+php+Mysql数据库的结合是当下最流行的”黄金搭档”,他们入门都很容易.稳定性也是最好的而且还是要免费的.要是有兴趣学习这方面的话,可以到网上找更多的教材来看.我这里简单叙述了一下.
web本意是蜘蛛网和网的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。
当你想进入一个网页, 或者其他网络资源的时候,通常你要首先在你的浏览器上键入你想访问网页的统一资源定位符(Uniform Resource Locator),或者通过超链接方式链接到那个网页或网络资源。这之后的工作首先是URL的服务器名部分,被名为域名系统的分布于全球的因特网数据库解析,并根据解析结果决定进入哪一个IP地址(IP address)。
接下来的步骤是为所要访问的网页,向在那个IP地址工作的服务器发送一个HTTP请求。在通常情况下,HTML文本、和构成该网页的一切其他文件很快会被逐一请求并发送回用户。
网络浏览器接下来的工作是把HTML、CSS和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。这些就构成了你所看到的“网页”。
大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。像这样通过超链接,把有用的相关资源组织在一起的集合,就形成了一个所谓的信息的“网”。这个网在因特网上被方便使用,就构成了最早在1990年代初蒂姆·伯纳斯-李所说的万维网
Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,[1]也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache Nginx IIS。
服务器特点:
Windows,Linux与Unix这3个操作系统是架设Web服务器比较常见的操作系统。Linux的安全性能在这3个操作系统中最高,可以支持多个硬件平台,其网络功能比较强大。总的来说,这两大优点是其他操作系统不可替代的:第一,可以依据用户不同的需求来随意修改、调整与复制各种程序的源码以及发布在互联网上;第二,Linux操作系统的市场价格比较便宜,也能够在互联网上免费下载源码。可以说,Linux为架设既高效又安全的Web服务器的比较理想的操作系统。此外,要让Web服务器更具有优越的性能,可以根据服务器系统之特点与用途作进一步的优化与处理,尽量减少Web服务器的数据传输量以及降低其数据传输的频率,进而促进网络宽带的利用率与使用率,以及提高网络客户端的网页加载的速度,同时也可以减少Web服务器各种资源的消耗。
工作原理:
Web服务器的工作原理并不复杂,一般可分成如下4个步骤:连接过程、请求过程、应答过程以及关闭连接。下面对这4个步骤作一简单的介绍。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。关闭连接就是当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。
其它具体资料请参考:http://baikebaiducom/linkurl=9MJ3SaBsPNEf818Hqa07si5jxw9zpUOj7hiQ2TCaLTT60jxww126Aj6GBgQwSWflL2da30JJ3f8dno6qJUwIAa
0条评论