Web应用层基础
TCP/IP协议四层
- 应用层
- 传输层
- 网际层
- 网络接口层
HTTP协议
HTTP:超文本传输协议,是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议。目前版本1.1
主要特点:
- 遵循请求/响应模型
- 无连接
- 每次连接只处理一个请求,完成请求并收到客户应答后,立即断开连接。
- 无状态
- 不会记忆之前的事务,每次请求都需要重传。
- 简单快速
- 灵活
请求组成
- 请求行
- 消息报头
- 请求正文
常用请求方法
- GET 向服务器请求一个页面
- POST 向服务器发送数据请求处理
响应组成
- 状态行
- 消息报头
- 响应正文
静态Web服务器的缺陷
- 没有交互性
精通Web和动态Web的区别
本质区别:静态Web无法进行数据库操作,动态Web可以操作数据库。动态Web最大的特点是具有交互性,所谓的交互性就是服务器端会根据用户请求响应不同的结果。
动态Web
- 基于Java的Servlet/JSP技术(Java Server Pages,Java服务页)
- 微软的ASP技术(Active Server Pages,动态服务页)
- 微软的ASP.NET技术(ASP技术的升级)
- PHP技术(Hypertext Preprocessor,超文本预处理)
- CGI技术(Common Gateway Interface,公共网关接口) 已淘汰
CGI技术
是最早出现的实现动态Web的技术,可以采取任何语言实现,但传统的CGI程序有巨大缺陷
缺陷:一个请求就打开一个新进程,执行效率很低,消耗服务器资源严重。不支持高并发
PHP技术
是一种跨平台服务器端的嵌入式语言。它大量借用C、Java和Perl语言的语法,并结合PHP自身的特点,使Web开发者能迅速的写出动态页面。而且PHP完全免费,可以从PHP官方站点自由下载。
缺陷:只用运行在Apache服务器下,只有使用MySQL数据库性能才更好,所以一般适合个人或小型项目开发。
ASP技术
是一个动态Web服务器的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务器程序。ASP采用脚本语言VBScript作为开发语言。由于ASP技术出现比较早,所以一直到今天还被继续使用。
缺陷:只能运行IIS服务器上,只能使用SQLServer数据库才能发挥最大性能。相对与Java开发而已,性能很差,一般用于个人或中小型项目开发。
ASP.NET技术
微软继ASP之后推出的新一代动态网站开发技术,它是基于.NET架构平台,用户可以选择.NET框架下自己喜欢的语言进行开发。ASP.NET技术是ASP技术的更新,也是微软目前主推的技术。
缺陷:微软的产生永远都会受到平台现实,适用于中型技术的开发。
JSP技术
使用Java完成的动态Web开发,代码风格和ASP类似,都属于在HTML代码中嵌入Java代码以实现功能,由于Java语言的跨平台特效,所以JSP也不会受操作系统或开发平台的限制,而且有多重服务器可以支持,如Tomcat、WebLogic、JBoss、WebSphere等。
经常在中大型项目开发中使用。
Web容器
负责管理和运行Servlet,容器对Servlet的支持包括:
- 通信支持 信息封装成对象(将请求信息和响应信息封装成请求对象和响应对象)
- Servlet生命周期管理 (产生和销毁Servlet,并调用相关方法)
- 多线程支持(线程创建、启动、运行、同步)
- JSP处理
- 处理安全性
Servlet规范
定义了一个容器必须实现的标准功能,目前版本3.0,具体实现:
- Tomcat
- Jboss
- WebLogic
- WebSphere
- Oracle9i AS
客户端请求→服务器→Web容器→开线程→调用运行在主进程或父程序中的Servlet→关线程并传输结果到web容器→服务器→传输到客户端
Tomcat
既是HTTP服务器,也是Web容器。
对外发布
conf/server.xml
Host字段
name='服务器IP地址'
Connector字段
port='端口号' //对外发布用80端口
重启服务器