写于:2018-12-05 08:11:30

# web 概述

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

WEB 主要分为两大类:静态内容动态内容

# 静态内容

HTTP 请求的数据由 Web服务器文件系统提供,例如 HTML,css,js,图片等。

换句话说:静态内容 在任何时候,任何人访问,所得到结果基本上是一致,用户获取的内容不会发生变化。

主要会在如下场景中应用:

  • 静态文本信息展示
  • css 渲染
  • js 脚本执行
  • 图片 以及 多媒体
  • 文件下载等

# 发展脉络

在技术层面,由于静态页面的单一性,

# 动态内容

HTTP 请求的数据由 Web服务器计算得到

换句话说:动态内容 ,在任何时候,任何人访问,得到的结果都是不一样的。每个用户得到数据基本上都是不一致的。

主要会在如下场景中应用:

  • 用户数据渲染
  • 表单交互
  • AJAX 数据请求
  • JSON / XML 数据解析 等

# 动态内容 与 静态内容的区别

动态内容 静态内容
计算类型 混合类型(I/O、CPU、内存等) I/O 类型
交互方式 丰富(用户输入、客户端特征等) 单一
资源内容 多样性 基本相同
资源路径 逻辑路径(虚拟) 物理路径(文件、目录)
请求方法 GET、HEAD、PUT、POST等 主要为GET请求

在优化上,动态内容和静态内容的优化技术也大不相同。静态内容由于每次请求的数据都基本一样,所以比较常用的技术就是缓存,例如 CDN,浏览器缓存等,缓存技术用来加快数据的返回速度。

而动态内容涉及的技术较多,其优化技术也是曾出不穷。但是无论什么优化,都是要提高用户请求速度(不谈论,安全,数据一致性)。

# 动态 Web 内容 技术演变架构

# CGI(Common Gateway Interface)公共网关接口

原理:

1、浏览器通过HTML表单超链接请求指向一个CGI应用程序的URL 2、服务受到请求 3.、服务器执行指定CGI应用程序 4、.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容 5、CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页) 6、网络服务器把结果返回到浏览器中

# Servlet

工作模式:

1、客户端发送请求至服务器 2、服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器 3、服务器将响应传给客户端

# JSP(Java Server Page)

JSP 其根本就是一个简化的 Servlet 。

# Model1(JSP + JavaBean)

4-web-model1

可以直观看到,就是: 1、用户请求 2、jsp 请求业务逻辑,根据返回 Bean 渲染 JSP 页面 3、返回 JSP 数据

优点:处理简单 缺点:数据操作和页面渲染 全部由 JSP 执行,导致JSP 页面臃肿,维护难。

# Model2(MVC)(JSP + Servlet +JavaBean)

4-model2

与 model1 不同在于,数据的业务处理全部交由 Servlet 来操作,Jsp 只做页面数据渲染。 优点:将业务处理 与 页面渲染 解耦。更利于开发

# Struts Web MVC

4-struts

采用的也是 MVC 模式,不过针对请求有和更细致的处理。

# Spring Web MVC

# 4-spring-mvc

Spring MVC 也是 MVC 模式

相对于 MVC ,Model2 中 controller 细化为 Front Controller (FC) ,和 Application Controller (AC),FC 负责路由,AC 负责试图跳转。

精彩内容推送,请关注公众号!
最近更新时间: 4/5/2020, 3:33:26 PM