JavaWeb基础
一.C/S
C/S分布式模式,C是指Client,S是指Server,C/S模式就是指客户端/服务器模式。是计算机软件协同工作的一种模式,通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
而C/S模式也存在自己的优缺点。
C/S优点:(1)应用服务器运行数据负荷较轻。(2)数据的储存管理功能较为透明。(3)C/S架构的界面和操作可以很丰富。
C/S缺点:(1)客户端需要安装专用的客户端软件。(2)对客户端的操作系统一般也会有限制。(3)适用面窄,通常用于局域网中。
二.B/S
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。
同样的,B/S模式也存在自己的优缺点。
B/S优点:(1)维护和升级方式简单。(2)成本降低,选择更多。(3)在电脑可上网的前提下,可以在任何操作系统上使用,并且不需要安装专门的软件 。
B/S缺点:(1)安全性较差,B/S其安全性只能靠数据库服务器上管理密码的数据库来保证。(2)逻辑结构比C/S多一层,处理速度较慢。(3)相对C/S来说交互能力差,不能够在子程序间自由切换。
总的来说,B/S和C/S都是随着互联网的发展而出现的一种网络结构模式,而其用的非常广泛,在我们生活中都很常见。
三.Http协议
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。
http协议的工作流程可以分为四部:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
而在http协议中,是以报文的形式发送请求,客户机发送请求报文,而服务器以应答报文进行响应,而报文的格式如下:
Web服务器的工作原理:
Web服务器的工作原理并不复杂,一般可分成4个步骤:连接过程、请求过程、应答过程以及关闭连接。
连接过程,就是Web服务器和Web浏览器之间所建立起来的一种连接。要查看连接过程是否实现,用户可以找到和打开socket这个虚拟文件(一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的“打开、读写和关闭”等操作)。这个文件的建立,意味着“连接过程”这一步骤已经成功建立。
请求过程,就是Web的浏览器运用socket这个文件向Web的服务器提出各种请求。应答过程,就是运用“HTTP协议”把在请求过程中所提出来的请求,传输到Web的服务器,进而实施任务处理,然后运用“HTTP协议”把任务处理的结果,再传输到Web的浏览器,同时在Web的浏览器上面,展示上述所请求的界面。
关闭连接,就是当上一个步骤:“应答过程”完成以后,Web服务器和Web浏览器之间断开连接的过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程,以及多个进程与多个线程相混合的技术。
五.Java Web开发环境的搭建
开发环境的搭建请参考以下博客文章: