大数据

JavaWeb notes.01: What's this?

一. 基本概念

1.1 Web的相关知识

Web的本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。
                                —百度百科

互联网上供外界访问的web资源分为:

  1. 静态web资源:指网页中供人们浏览的数据始终是不变。
  2. 动态web资源:指网页中供人们浏览的数据是由程序实时运算产生的,不同时间点访问web页面看到的内容各不相同。

这里的动态和静态指的就是web页面中的数据!

静态web资源开发用到的主要技术:Html.
动态web资源开发常用技术包括:JSP&Servlet,ASP,PHP(近年来很火爆) etc.
而所谓的JavaWeb就是Java开发动态web资源技术的统称。

1.2 Web应用

  web应用指的是供浏览器访问的应用程序。和Android app一样,web应用程序可以理解为网络上的app,浏览器为其提供运行环境。
  一个完整的web应用应该由多个静态资源和动态资源构成,包括:html页面文件,css样式文件,js浏览器脚本文件,jsp文件,java程序文件,以及应用配置文件等等(这里说的是JavaWeb应用)。

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。

1.3 Web发展史

  总体技术的发展是从静态过渡到动态,页面内容更加丰富,技术不断革新。
  web版本的发展:从1.0一直到今天的5.0(详情请查阅百度百科-web版本区别

1.4 静态Web

静态Web大致访问过程

静态Web的致命缺陷:

  1. 页面内容不能动态的实时刷新,用户得到的内容是死的,这还有什么意思。
  2. 无法连接数据库,从而无法实现与用户的交互。数据库是目前网站甚至任何系统所必不可缺的存在。静态web无法满足新的网站架构设计,注定会被淘汰。

1.5 动态Web

动态Web大致访问过程
动态web的常见开发技术:
  1. Microsoft ASP、ASP.NET
      微软公司动态WEB开发是比较早的,而且最早在国内最流行的是ASP。ASP就是在HTML语言之中增加了VBS脚本,但是标准的开发应用应该是使用ASP+COM,但是实际情况来看,在开发ASP的时候基本上都在一个页面中写上成百上千的代码,页面代码极其混乱。
      ASP本身有开发平台的限制:Windows+IIS+SQL Server/Access,ASP只能运行在Windows操作系统上,ASP现在基本上已经淘汰,现在基本上都是使用ASP.NET进行开发,ASP.NET在性能有了很大的改善,而且开发迅速,但是依然受限于平台。ASP.NET中主要是使用C#语言。
  2. PHP
      PHP开发速度很快,功能强大,跨平台,而且代码也简单,学起来很容易上手(毕竟是世界上最好的语言)。
  3. Servlet/JSP
      这是SUN公司(SUN现在已经被Oracle公司收购)主推的B/S架构的实现语言,是基于Java语言发展起来的,Java语言的强势之处体现于此。
      Servlet/JSP技术的性能也是非常高的,不受平台的限制,可跨平台使用。而且在运行中是使用多线程的处理方式,所以性能非常高。
      SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用Java代码+HTML的方式编写的,即,要使用Java输出语句,一行一行地输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP(Java Server Page)。

二. WEB服务器

2.1 Web服务器简介

  1. Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
  2. 服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。

那服务器程序到底运行在什么东西上呢?来让我们喽一眼:

服务器设备的庐山真面目

完全可以看做一台高性能计算机

企业级的服务器集群

2.2 主流Web服务器介绍

  1. Apache logo

      Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

  2. Nginx logo

      Nginx (“engine x”) 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
      Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:京东、新浪、网易、腾讯、淘宝等。

  3. Tomcat logo

      Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0

  4. IIS图形界面管理工具

  Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务。

IIS图形管理工具界面

  IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

学习Web开发,搭建起自己的web服务器是必要的第一步!行动起来吧!


参考资料及引用:
  百度百科
  JavaWeb Blog-孤傲苍狼