写在前面:
总结一下我认为的从零开始学习 Java Web 的基本路线:
- Java 基础:流程控制 -> 面向对象(包括 Java语法)-> Java 集合 -> Java IO 流 -> 异常 -> 多线程 -> 网络编程 -> 反射
- Java Web 基础:HTML/CSS/JavaScript/jQuery -> Tomcat -> XML/注解 -> Servlet -> HTTP -> Filter过滤器和监听器 -> JSP ->AJAX/JSON -> 数据库(MySQL) -> JDBC 和 DbUtils
这篇博客只介绍C/S,B/S,HTTP协议,Web服务器原理和 Java Web 开发环境与搭建
Web 服务器原理
Web 包括 Web 服务器和 Web 客户端两部分。当客户端(浏览器)和 Web 服务器之间进行通信时需要用到 HTTP (超文本传输协议),Web 服务器也叫 WWW 服务器,是指驻留于互联网上某种类型计算机上的程序(服务器)。当 Web 浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求,并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)服务器使用 HTTP (超文本传输协议)进行信息交流,它有以下3个特点:
- 应用层使用 HTTP 协议。
- HTML 文档格式。
- 浏览器采用统一资源定位器(URL) 来请求资源。
C/S 与 B/S
网络开发中有两种开发模式:即 C/S (Client/Server 模式)和 B/S (Browser/Server 模式)。C/S 中服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。B/S 中客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。客户端需要安装专用的客户端软件。
在传统 Web 应用程序的开发过程中,开发-个应用系统一般情况下需要以下几个步骤:客户端/服务器端软件的开发、服务器端程序的部署、客户端软件的安装,只有完成这几个步骤,用户才可以通过客户端访问服务器提供的服务。而在基于 B/S 架构的 Web 程序大开发过程中,只需要开发服务器端的功能代码,然后把服务器端的程序部署在 Web 服务器软件中即可,在部署结束之后,启动 Web 服务器,用户就可以通过浏览器访问 Web 应用程序提供的服务。
在 C/S 和 B/S 两种架构之间,并没有严格的界限,两种架构之间没有好坏之分,使用这两种架构都可以实现系统的功能。开发人员可以根据实际的需要进行选择,例如需要丰富的用户体验,那就选择 C/S 架构,在目前的网络游戏中,基本都是选择 C/S 架构;如果更偏重的是功能服务方面的实现,就需要选择 B/S 架构,这也正是目前绝大部分管理应用系统采用的软件架构方法。
HTTP 协议
HTTP 协议即超文本传输协议。超文本传输协议是万维网上应用最为广泛的一种网络协议,是一个属于应用层的面向对象的协议,适用于分布式超媒体信息系统。HTTP 主要用在客户端(浏览器)和 Web 服务器之间进行通信。客户端(浏览器)和 Web 服务器之间要进行通信,首先使用可靠的 TCP 连接(默认端口为 80),然后浏览器要先向服务器发送请求信息,服务器在接收到请求信息后做出响应,返回相应的信息,浏览器接收到来自服务器的响应信息后,对这些数据进行解释执行。浏览器的每次请求都要求建立一次单独的连接, 在处理完每一次的请求后,就自动释放连接。HTTP 可以分为两部分: HTTP 请求和 HTTP 响应。
HTTP 的请求格式
<request-line> <headers> <blank line> [<request-body>]
在 HTTP 请求中,第一行必须是-一个请求行(request line) ,用来说明请求类型、要访问的资源以及使用的 HTTP 版本。紧接着是一个头部(header) 小节,用来说明服务器要使用的附加信息,例如声明浏览器所用语言、请求正文的长度等。在头部之后是- -个空行,指示头部结束。在此之后可以添加任意的其他数据,称之为主体(body) ,其中可以包含客户提交的查询字符串信息。
在 HTTP 请求中,定义了大量的请求类型,其中 GET 请求和 POST 请求是最主要的。只要在 Web 浏览器中输入一个 URL ,浏览器就将基于该 URL 向服务器发送一个 GET 请求,以告诉服务器获取并返回资源(也就是对网页的访问)。而 POST 请求在请求主体重为服务器提供了一些附加的信息。通常,当填写一个在线表单并提交时,这些填入的数据将以 POST 请求的方式发送给服务器。
HTTP 的响应格式
<status-line> <headers> <blank line> [<request-body>]
Java Web 开发环境与搭建
网上关于 Java Web 开发环境的搭建的博文实在太多,这里就不再做多余的赘述,可参考https://blog.csdn.net/yuzhiqiang_1993/article/details/81166813