Spring Boot系列(二) Web篇(上)

原文地址:http://xxwgit.cn:8443/article/22

静态web内容

基本解释

HTTP 请求内容由Web 服务器文件系统提供,常见静态Web内容如:HTML、CSS、JS、JPEG、Flash等等

特点

  1. 计算类型:I/O 类型
  2. 交互方式:单一
  3. 资源内容:基本相同
  4. 资源路径:物理路径,文件或者目录
  5. 请求方法:Get

常见使用场景

  1. 信息展示
  2. 样式文件(css)
  3. 脚本文件(js)
  4. 图片(jpeg,gif)
  5. 多媒体(Flash,movie)
  6. 文件下载

常见Web服务器

  1. Apach HTTP Server
  2. Nginx
  3. Microsoft IIS
  4. GWS

思考

问题:为什么Java Web Server不是常用的Web Server?
  1. 内存占用:java中的类型(数据类型等)太多,内存占用大,还有就是分配的问题,二进制0会占用大量内存(00001比如这个)
  2. 垃圾回收:java的垃圾回收机制是被动回收,建议回收,java中还有停顿
  3. 并发处理:java是线程开销的,java中还存在线程池

标准优化技术

  1. 资源变化:相应头:Last-Modified 请求头:If-Modified-Since
  2. 资源缓存: 相应头:ETag 请求头:If-None-Match

动态Web内容

基本解释

与静态Web内容不同,请求内容通过服务器计算而来。

特点

  1. 计算类型:混合类型(I/O、CPU、内存等)
  2. 交互类型:丰富(用户输入,客户端特征等)
  3. 资源内容:多样性
  4. 逻辑路径(虚拟)
  5. 请求方法:GET、HEAD、PUT、POST等

常用使用场景

  1. 页面渲染
  2. 表单交互(Form)
  3. AJAX
  4. XML
  5. JSON/JSONP
  6. Web Services(SOAP,WSDL)
  7. WebSocket

流行的java web服务器

  1. Servlet 容器(Tomcat、Jetty)
  2. 非 Servlet容器(Undertow)

请求

  1. 资源定位(URI)
  2. 请求协议(Protocol)
  3. 请求方法(Method)
  4. 请求参数(Parameter)
  5. 请求主体(Body)
  6. 请求头(Header)
  7. Cookie

响应

  1. 响应头(Header)
  2. 响应主体(Body)

技术/架构演变

  1. CGI(Common Gateway Interface)
  2. Servlet
  3. JSP(Java Server Page)
  4. Model 1(JSP + Servlet + JavaBeans)
    Spring Boot系列(二) Web篇(上)
  5. Model 2(MVC)
    Spring Boot系列(二) Web篇(上)
  6. Struts Web MVC
    Spring Boot系列(二) Web篇(上)
  7. SpringMVC
    Spring Boot系列(二) Web篇(上)

Model2和MVC的细微差异:

  1. Model 2 为面向 Web 服务的架构,MVC 则是面向所有应用场景(比如:PC应用、无线应用)
  2. 相对于MVC,Model 2 中 Controller 细化为 Front Controller(FC)和Application Controller(AC),前者(FC)负责路由后者(AC),后者(AC)负责跳转视图(View)。

模板引擎

  1. JSP
  2. Velocity
  3. Thymeleaf