正文 回到顶部 web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机。这个浏览器程序是一个简单的电话号码查询软件。最初的web服务器程序就是一个利用浏览器和web服务器软件之间的联系,将存储在硬盘上的文件传递给远程的读者。 web服务器软件主要是提供web服务的软件,为浏览器提供http数据的支持。 它无非就是把硬盘上的文件 以http数据流 的形式提供给web服务器,这就是它的基本用途。这个基本用途就是作为web服务器软件的发明人蒂姆.博纳斯-李发明web服务器的初衷。 需要传递的硬盘上 的文件 的格式是html格式的标记性语言的文件。web服务器软件在接受到浏览器的访问请求的时候,将直接不加任何修改的将这个html文件传递到远程浏览器端,传输协议是TCP的HTTP协议。 再看下图,深入了解他的原理。 这是一个最初的web服务器软件 的原理图,也是一个支持html格式文件服务 的所以web服务器 的原理图,即使是最著名 的Apache HTTP Server也是这个原理。 所谓的静态页面是指本地文件直接被web服务器取得的这种web页面。而想Asp,jsp,php这样的所谓动态页面是怎么个原理呢? 回到顶部 支持jsp的web服务器 的原理 动态页面 的web服务器和静态页面的web服务器之间仅有一点的区别,就是在本地端得到html格式信息的方法不是直接从文件中读取,而是从程序电脑生成信息中获取而已。 那么,支持jsp的动态 的web服务器的原理又是什么养的呢?其实就是多了一个将jsp文件转换成java文件并且编译 的过程,然后运行那个被编译的Class文件,从而时期得到要返回给了浏览器的格式信息,然后将其返回给远端的浏览器。 下图玩他的原理图 大家估计都要已经看出来了,与返回静态页面的区别是,返回的信息是由过程生成的。其实,原理很简单,无非就是读文件发出去而已。 回到顶部 常用的web服务器 前面介绍的就是web服务器的 工作原理,java程序猿应该对下面的这些软件做到非常熟悉 1.Apache HTTP Server Apache也许是时间最久也是最流的 http服务器软件。快速、可靠,通过简单的API扩展,Perl/Python解释器可悲编译到服务器当中,完全免费,源代码开放。 官方的站点为http://httpd.apache.org/. 2.Tomact 是目前业界被最广泛认可 的一个web服务器,他是Java Servlet2.2和Java Server Pages1.1技术的标准实现,是基于Apache许可证下的开发 是自由软件,由Jakarta项目组开发, 官方站点是http://tomcat.apache.org/ 研究一下web服务器的源程序 既然web服务器的原理如此简单,那就手动自己开一个试试吧。 1.步骤一、确定用TCP作为服务传输协议 复制代码 package yxh; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; /** * * @author Baron * @version 创建时间:2017年1月2日 * @Dsecription 确定用TCP 作为服务传输协议,首先做一个main函数,建立Socket ,并用一个“死循环” 的形式 * 监听指定端口。 */ public class HttpServer { public static String ROOT = "./wwwroot"; ///默认root文件夹 public static String defaultPage = "index.html"; //默认文件的文件名 public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8000); while(true) { //阻塞,等待浏览器的连接 Socket sk = server.accept(); System.out.println("Accepting Connection ...\n"); //启动服务线程 new HttpThread(sk).start(); } &n
