美文网首页
1.1 Web技术演化

1.1 Web技术演化

作者: 最酷的崽_ec69 | 来源:发表于2019-10-30 14:33 被阅读0次

1.1.1. 静态页面

        在互联网最初开始的时候,Web网站的主要内容是静态的,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,仅仅是浏览网页。

1.1.2. 多媒体阶段

        随着技术的不断发展,音频、视频、Flash等多媒体技术诞生了。多媒体的加入使得网页变得更加生动形象,网页上的交互也给用户带来了更好的体验。

1.1.3. CGI阶段

        渐渐的,多媒体已经不能满足人们的请求,于是CGI(Common Gateway Interface)应运而生。CGI定义了Web服务器与外部应用程序之间的通信接口标准,因此Web服务器可以通过CGI执行外部程序,让外部程序根据Web请求内容生成动态的内容。

        在这个时候,各种编程语言如PHP/ASP/JSP也逐渐加入市场,基于这些语言可以实现更加模块化的、功能更强大的应用程序。

1.1.4.Ajax

        在开始的时候,用户提交整个表单后才能获取结果,用户体验极差。于是Ajax(Asynchronous Javascript And XML)技术逐渐流行起来,它使得应用在不更新整个页面的前提下也可以获得或更新数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。

1.1.5. MVC

        随着Web应用开发越来越标准化,出现了MVC等思想。MVC是Model/View/Control的缩写,Model用于封装数据和数据处理方法,视图View是数据的HTML展现,控制器Controller负责响应请求,协调Model和View。

        Model,View和Controller的分开,是一种典型的关注点分离的思想,使得代码复用性和组织性更好,Web应用的配置性和灵活性也越来越好。而数据访问也逐渐通过面向对象的方式来替代直接的SQL访问,出现了ORM(Object Relation Mapping)的概念。

        除了MVC,类似的设计思想还有MVP,MVVM等。

1.1.6. RESTful

        在CGI时期,前后端通常是没有做严格区分的,随着解耦和的需求不断增加,前后端的概念开始变得清晰。前端主要指网站前台部分,运行在PC端、移动端等浏览器上展现给用户浏览的网页,由HTML5、CSS3、JavaScript组成。后端主要指网站的逻辑部分,涉及数据的增删改查等。

        此时,REST(Representation State Transformation)逐渐成为一种流行的Web架构风格。

        REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征:

域名和主域名分开

        api.example.com

        example.com/api/

带有版本控制

(1)强制使用统一API版本

        整个项目使用一个API版本,不考虑兼容性,缺点

(2)URI中显式添加版本号

        把版本号嵌入到API中,例如developer.github.com/v3/media/,访问操作对应版本号下的资源。这种显示的表示版本号的好处是可以很直观的展示当前api版本号。缺点是违背RESTful架构的原则,理论上一个URI对应服务器一个特定的资源,添加版本号则会混淆版本和资源的概念,而且会让整个架构变得混乱,增加日后维护的成本。 还有一种是把版本号作为参数请求api获取操作对应版本号的资源,例如www.demo.com/list?version=2。

(3)添加头信息控制版本

        在API请求header中添加Accept字段。Accept的作用是客户端指出响应可以接受的媒体类型,如:Accept:application/json; version=v2,具体格式也可以参考下面。

Accept: application/vnd.xxxx[.version].param[+json]

例如:Accept: application/vnd.demo.app-v2+json

优点:遵循了REST的原则

缺点:不够直观原文链接

使用URL定位资源

        GET /users 获取所有用户

        GET /team/:team/users 获取某团队所有用户

         POST /users 创建用户

        PATCH/PUT /users 修改某个用户数据

        DELETE /users 删除某个用户数据

HTTP 动词描述操作

        GET 获取资源,单个或多个

        POST 创建资源

        PUT/PATCH 更新资源,客户端提供完整的资源数据 是

        DELETE 删除资源

正确使用状态码

        使用状态码提高返回数据的可读性

默认使用JSON 作为数据响应格式

有清晰的文档

1.1.7. 云服务

        随着时间的发展,Web的架构越发复杂,负载均衡、数据库分表、异地容灾、缓存、CDN、消息队列等技术开始应用,增加了Web开发和运维的复杂度。同时云服务开始逐渐发展,部署环境容器化,各个功能拆成微服务或是Serverless的架构。

1.1.8. 参考链接

Scaling webapps for newbs

GitHub 的 Restful HTTP API 设计分解

相关文章

  • 1.1 Web技术演化

    1.1.1.静态页面 在互联网最初开始的时候,Web网站的主要内容是静态的,由文字和图片组成,制作和表现形式也是以...

  • 1. 基础知识

    Contents: 1.1. Web技术演化 1.1.1. 静态页面 1.1.2. 多媒体阶段 1.1.3. CG...

  • 「 图解HTTP 」 读书笔记 第 十 章

    构建 Web 内容的技术 1. HTML 1.1 Web 页面几乎全由 HTML 构建 HTML(HyperTex...

  • Servlet概述

    # 一、Servlet概述 ## 1.1 什么是Servlet Servlet是基于Java技术的web组件,容器...

  • 小图标,大学问

    图标虽小,里面的门道可一点都不少。甚至可以说,图标的演化是 Web 技术演化的一个缩影。本文将带你回顾一下图标简史...

  • javaWeb开发入门(一)

    一、基本概念 1.1JavaWeb相关知识 JavaWeb是使用Java来解决Web互联网领域的技术的总和,Web...

  • 【转载】各大互联网公司架构演进之路汇总

    大型网站架构演化历程 大型网站架构技术一览 Web 支付宝和蚂蚁花呗的技术架构及实践 聚划算架构演进和系统优化(视...

  • 2018-11-03大型网站架构演化历程

    大型网站架构演化历程 大型网站架构技术一览 Web 支付宝和蚂蚁花呗的技术架构及实践 聚划算架构演进和系统优化(视...

  • 微网站开发技术点

    基于html5的移动web页面搭建技术总结 1.技术要点 1.1面向不同尺寸的手机屏幕,页面布局适配问题。 网页的...

  • JavaWeb编程实战宝典(1)___第1章 Web开发必会的客

    第1章 Web开发必会的客户端技术 1.1 学习客户端技术的开发工具 1.1.1 在myeclipse中使用HTM...

网友评论

      本文标题:1.1 Web技术演化

      本文链接:https://www.haomeiwen.com/subject/jparvctx.html