一般的Web服务器的处理过程 :
以HTTP为例 ,当服务器接收到客户端请求的时候会经历如上图的过程
- 读取输入流
- 进行解码
- 进行业务处理
- 对结果进行编码
- 发送响应到客户端
在JAVA中一般用 Socket代表客户端 , ServerSocket代表服务端
根据上图可以抽象出几个对象 :为HTTP的请求 - 响应模型
- Request 、 Response : 请求 / 响应 实体
- Server : 监控端口接收客户端请求
- Handler / Processor : 负责处理业务逻辑
一个简单的Servlet容器 :
一次请求到达Servlet容器后进行的处理 :
- GET / POST 参数的获取
- header的解析
- cookie和session的管理
- 业务方法的处理 , Servlet.service();
根据HTTP 协议可以进行method的校验 : 简单的可以对request第一行进行判断只处理 GET / POST 请求
GET /servlet HTTP /1.1