首先通过B/S编程模式来了解web应用开发。
下图表现了B/S编程模式中的具体过程,首先浏览器把请求发送给服务器,服务器查询结果,然后结果格式化成响应发送至浏览器,最后浏览器渲染出相应的页面。基本的功能由浏览器内核实现。

在上图中服务器和浏览器的交互是web应用的核心部分,服务器和浏览器都分别有什么作用呢?
Web服务器 :Web服务器接收客户端的请求并将结果返回客户端
Web客户端:Web客户端可以使用户向服务器提出请求,并向用户展现请求的结果。上图中的客户端也就是浏览器。
从上图中,可以发现浏览器主要有3个功能:
- 格式化请求
- 与服务器之间通信
- 展示页面
那么浏览器怎么知道展示给用户什么样的界面?
这就需要HTML去告诉浏览器,浏览器可以把html代码渲染成我们所见到的页面。
那么浏览器怎么获得HTML?
服务器使用HTTP向客户端发送HTML。HTTP是一种通信协议,详见下部分。HTML则是超文本标记语言,可以经浏览器渲染出图片、文件、音频等。
一、 HTTP
接下来就来深入了解http以及他的请求和响应。
HTTP是客户端和浏览器在Web上通信的协议,基于TCP/IP协议。
1.1 HTTP请求
http请求告诉服务器请求的类型,剩余的消息是如何被格式化的。
HTTP请求包括:HTTP方法(执行的动作)、访问的页面URL、 表单参数。
最常用的http方法就是GET 和 POST。
1)GET方法
GET是最简单的请求,它向服务器获取一个资源并将之发回,可以用HTTP GET向服务器发送少量的数据。
下面是一个GET请求的例子。第一行是请求,通过 ? 拼接名值对传递少量参数,但是这些参数会在网址栏中显示出来。

2)POST方法
向服务器请求资源,同时可以发送一些表单数据。
下图是一个POST方法的例子,表单参数放在最下面。

发送数据用POST不用GET的理由
- 数据大小:GET中的字符量按服务器不同有限制
- 安全性:用GET发送的数据被附加到URL后面,任何 人可以看到。不适于发送敏感数据
1.2 HTTP响应
HTTP响应包括:状态码(请求是否成功)、 内容类型(text/picture/HTML,etc)、内容 (实际的HTML, image, etc)
如下图就是一个HTTP响应,HTML的实际内容放在下面的里面 。

2 动态web的基本原理
了解HTTP请求和响应原理之后,我们来介绍动态web的基本原理。

1. 用户点击一个URL链接到一个web服务器应用程序,而不是静态页面。
2. Web服务器应用程序“看到”该请求是给一个帮助程序的,所以 web服务器加载并执行该程序。 Web服务器应用程序同时以GET 或POST形式发送参数到帮助程序。
例如后面所要介绍的 servlet 就是一个帮助程序。
3. 帮助程序构建页面并以 HTML发送回服务器。
4. 关闭帮助程序,客户端获得 HTML页面,显示动态内容。