HTTP 是 Hypertext Transfer Protocol(超文本传输协议)
HTTP 是一个客户端和服务器端请求和应答的标准(TCP)
IP(Internet Protocol)是网络之间互连的协议
IP 地址是一个逻辑地址,具有全球唯一性
URL (Uniform Resource Locator,统一资源定位符)
URL 的组成
例如:http://host:8080/bookec/pages/user/index.htm。它的含义如下:
- http://: 代表超文本传输协议
- host: 表示 Internet 主机域名或者 ip 地址
- 8080: 端口(port),端口号的范围从 0 到 65535,1024 一下的端口号保留给预定
义的服务。http 使用的是 80 端口。 - bookec: webContext 区分是哪一个 web 应用
- pages/user/ web 应用中的路径(path)
- index.htm: 是文件夹中的一个 HTML 文件(页面)
我们称/bookec/pages/user/index.htm 是统一资源标识符 URI(Uniform Resource Identifier),注意 URI 以 / 开头。
Web 应用的模式
C/S 模式(Client/Server),即客户机/服务器模式,又称胖客户端,或富客户端。
C/S结构优点:
- 客户端响应速度快
- 应 用服务器运行数据负荷较轻
C/S结构缺点:
- 高昂的维护成本且投资大
- 客户端需要安装专用的客户端软件,不利于维护
B/S(Browser/Server),即浏览器/服务器模式,又称为瘦客户端,或贫客户端。
B/S 结构是随着 Internet 技术的兴起,对 C/S 结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在 Web 服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。
Web动态功能的实现
CGI
CGI 代表 Common Gateway Interface(通用网关界面),它是运行在 Web 服务器上的一个程序,并由来自于用户的输入触发。
CGI 程序的优点:
- 可以用各种语言编写
- 实现相对容易
CGI 程序的缺点:
- 每个 shell(单元)都是重量级的,每个请求都要启动一个新的进程;
- 不可伸缩
- CGI 处理代码(业务逻辑)与 HTML(表现逻辑)混合在一起
- 语言不一定强健,不一定是面向对象的
- 语言不一定是独立于平台的
Java Servlet
- Servlet 是在服务器上执行的 Java 组件;
- Servlet 完成的任务与 CGI 程序相似,但其在不同的环境中执行;
- Servlet 完成如下工作:处理 HTTP 请求;动态生成 HTTP 响应;
Java Servlet 的优点:
- 性能(线程比进程更快)
- 可伸缩;
- Java 强健且面向对象
- Java 平台独立
Java Servlet 的缺点:
处理代码(业务逻辑)与 HTML(表现逻辑)混合在一起;
JSP
- JSP 页面被翻译成 Servlet 类并编译 ,在 Web 容器中作为 Servlet 对待。
- 与 ASP 和 PHP 不同,JSP 页面是需要翻译的,而不是解释的。
- JSP 页面可集中在表现逻辑,而不是业务逻辑上。
- 在使用 Java 的 Web 应用中,JSP 页面通常用作 MVC 模式中的视图部分。
JSP 的优点(具有 Servlet 所有优点):
高性能、高伸缩性、平台独立性、可使用 Java 语言作为其脚本语言。
JSP 的缺点:
如果 JSP 页面独立使用,则 JSP 页面中完成业务和控制逻辑的脚本代码会很多
Servlet
Servlet是在服务器上执行的Java 组件,主要功能是接收 http请求,产生动态 http响应。