解析HTTP协议
分层模型:
OSI: 物理层->数据链路层->网络层->传输层->会话层->表示层->应用层
TCP/IP:物理层->数据链路层->网络层->传输层->应用层
什么是HTTP协议:
HTTP协议是超文本协议,是一套计算机在网络中通信的一种规则。
HTTP协议是一种无状态的协议。请求->响应 之后就关闭连接
浏览器通过HTTP协议向WEB服务器交换信息的时候,服务端返回的文件都有相关的类型(MIME)
MIME:设定某种扩展的文件,用一种应用程序的打开方式的类型。
HTTP处理流程:
1.客户端与服务端建立连接
2.客户端向服务端发送request请求
3.服务端处理请求,并生成response响应返回给客户端
4.服务端关闭连接,客户端解析response并处理
WEB服务器的缺陷
缺陷:
只能向客户端发送静态页面
解决:
在运行Web服务器软件的Web服务器主机上增加一个辅助应用,这个应用负责生成动态页面,并且能与Web服务软件通信。
服务端网页编程JAVA
Servlet
定义:
Servlet是一个在web服务器端或者应用服务器端运行的JAVA程序,主要用于在服务端产生动态内容
Servlet是与平台无关的java类
主要任务:
1.读取客户端发送的显示或者隐式的数据
2.生成结果
3.向客户端发送显示或者隐式的数据
Web容器
定义:
负责管理和运行servlet
对servlet的支持:
通信支持:
利用容器提供的方法,我们能轻松的让servlet和web服务器对话。
生命周期管理:
容器控制着servlet的生死。它负责加载类、实例化、初始化servlet、调用servlet方法等等
多线程支持
容器会自动的为它接收到的每个servlet请求创建一个新的Java线程
JSP支持:
容器自动会将jsp转换为servlet代码
处理安全性:
web容器实现访问权限控制
Web容器Tomcat
目录结构:
bin 启动和关闭服务器的脚本文件,以及其他tomcat命令
conf 存放配置文件,如:server.xml
lib 服务器所需的所有JAR文件
logs 日志文件
temp 存放tomcat运行过程中产生的临时文件
webapps 应用程序部署目录
work 存放由JSP生成的Servlet的目录(可以全部删除,重新启动后会重新生成)
Servlet规范
Servlet规范只定义了一个容器必须实现的标准功能
web容器和servlet对响应和请求的处理
1.客户端向web服务器发送一个请求
2.HTTP请求被web服务器接收,如果请求的是静态页面,则由web服务器负责处理。
如果请求的是Java web组件(servlet或jsp),移交给web容器。web容器可以在主机的同一个进程、不同的进程或其他web服务主机的进程中启动
3.web容器根据servlet的配置文件(web.xml)确定调用的具体的servlet类,传入request,response
4.servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么以及其他一些信息。servlet处理完成后把返回的信息放入response中返回给客户端
5.一旦servlet完成请求处理,web容器就会刷新response,把控制权返回给web服务器
Java Web应用程序的组成
主要组成部分
配置文件:web.xml
静态文件和jsp
类文件和包
文件目录结构(主要部分):
AppName
AppName\WEB-INF
AppName\WEB-INF\web.xml
AppName\WEB-INF\classes
AppName\WEB-INF\lib
WEB-INF下的文件是不可访问的
总结问题:
HTTP处理流程是怎么样的?
HTTP请求和响应包括哪些内容?
Web服务器的缺陷是什么?Java是怎么样解决这个缺陷的?
Servlet主要任务是什么?
Web容器对servlet支持包括哪些?
Java Web应用程序由哪几部分组成?
Tomcat结构是怎样的?