转自:微点阅读 https://www.weidianyuedu.com/content/1017370521955.html

简单的说Web就是为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。

Web服务为用户打开了一扇获取互联网服务的大门,这些服务不仅仅包括信息浏览服务,也包括各种交互式服务,包括聊天、购物、学习等等内容,可以说Web的出现释放了互联网巨大的力量。

Web应用开发也经过了几代技术的不断发展,目前Web开发依然是最重要的开发内容之一。说到Web开发就一定会涉及到Web技术的基本呈现方式,基础的技术包括超文本标记语言(HTML)和HTTP协议,HTML是一种呈现数据的方式(给人看的),而HTTP则是一组通信的标准(语法、语义、时许),可以简单的理解为HTTP携带HTML。

为了能够更全面的了解Web,下面简单的梳理一下Web发展的历史,介绍一下其中涉及到的技术。

早期的Web服务比较简单,用户发出请求到达服务器之后,服务器给出对应的回应,用户通过浏览器把回应的内容(HTML)解析(呈现)出来,看一个图:

图中有几个重要的元素需要简单的解释一下,Browser代表浏览器,浏览器是发送消息和接受消息的终端,是用户与Web服务交互的基本手段。用户发送请求的内容会封装成request对象然后发送到服务端,ruquest中封装了用户的元信息和提交的数据信息,其中元信息就是用户的基本信息,包括浏览器版本号、服务端口、使用的操作系统等内容。

httpd是处理HTTP请求的服务(进程),httpd会启动相应的服务来处理用户的请求,往往是把服务端对应的文件(HTML)封装成response对象并返回给用户,用户的浏览器解析出response中的内容并最终呈现给用户。整个过程需要了解浏览器、服务器、资源(文件)三者之间的关系,以及各自所部署的位置。

早期的Web应用多以静态资源为主,把提供静态资源服务的Web服务称作为Web Site(网站),为了丰富Web服务,定义了能够进行动态服务的Web Application,看一个图:

Web Application的功能就非常强大了,它能够动态处理业务逻辑。这里面新增加了两个重要的角色,一个是CGI(公共网关接口),另一个是Database(数据库)。CGI提供业务处理能力,数据库提供数据存储服务。CGI在服务端的执行过程如图所示:

CGI的出现解决了Web动态交互的问题,可以说Web服务的形式就更加丰富了,也由此开启了一个Web开发的大时代。

虽然CGI的方式能解决动态交互问题,但是CGI自身也有诸多问题,比如扩展性差、处理能力不强、依赖平台、重量级等,此时在Web领域推出了一个技术就是Java Web技术,Java Web技术能够有效解决这些问题,看一个处理流程图:

通过与CGI的对比能够看出,Servlet技术的资源消耗更少。由于Java Web表现出来的优秀性能,所以在Web开发领域得到了广泛的应用。后来推出的JavaEE技术更是进一步的解决了性能问题,为Web服务构建大型应用奠定了基础,看一个图:

虽然目前Java Web技术已经有了更多的方案,比如轻量级处理方案(Spring),但是Java Web却是目前大型互联网平台的常见解决方案,看两个图:

以上就是Web服务的发展过程,包括技术发展的一个简单介绍。

我做Java Web开发多年,目前也在带Java开发团队,我会陆续在头条写一些关于Web技术方面的文章,对Web技术感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

通俗讲解:什么是Web相关推荐

  1. 人工智能算法通俗讲解系列(二):逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 今天,我们介绍的机器学习算法叫逻辑回归.它英语名称是Logistic Regression,简称LR. 跟之前一样,介绍这个算 ...

  2. Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解

        Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解 在Hadoop分布式环境下实现K-Means聚类算法的伪代码如下: 输入:参数0--存储样本数据的文本文件inpu ...

  3. 冲突域、广播域的通俗讲解

    冲突域.广播域的通俗讲解 1.冲突域(物理分段)         连接在同一导线上的所有工作站的集合,或者说是同一物理网段上所有节点的集合或以太网上竞争同一带宽的节点集合.这个域代表了冲突在其中发生并 ...

  4. 通俗讲解:图像傅里叶变换

    转自某乎:通俗讲解:图像傅里叶变换 - 知乎 这里我们主要要讲的是二维图像傅里叶变换,但是我们首先来看一张很厉害的一维傅里叶变换动图. 妈耶~厉害哇!它把时域和频域解释的很清楚! 什么!你看不懂! 简 ...

  5. 关于CSS浮动(float,clear)的通俗讲解(经验分享)

    很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...

  6. 二维小波变换_小波变换完美通俗讲解系列之 (一)

    声明:该篇文章转自csdn,原始博主已经找不到了,在这里给出转载博主地址,如有侵权,请私信我删除. https://blog.csdn.net/liusandian/article/details/5 ...

  7. vue标准时间改为时间戳_区块链科普005:什么是时间戳?白话通俗讲解时间戳是什么意思?...

    原标题:区块链科普005:什么是时间戳?白话通俗讲解时间戳是什么意思? 八宝饭区块链:什么是时间戳 时间戳是什么?可能很多人都没有听过,但是作为办公一族应该掌握这个技能.时间戳技术就是数字签名技术一种 ...

  8. Java多数据源最通俗讲解

    Java多数据源最通俗讲解 before after 理论 实操 编码 小总结 before 项目中可能会用到很多的数据源,例如目前这个项目中用到了五个数据源,那么数据源的 配置和数据源的切换就成为了 ...

  9. 通俗讲解 依概率收敛,大数定理和中心极限定理

    通俗讲解 依概率收敛,大数定理和中心极限定理 依概率收敛 首先说一下结论,依概率收敛是一种基础证明工具,可以类比到高数中的极限定义,将一种直觉上的 "逼近某个数" 用数学公式来定义 ...

  10. 广为流传的一个关于项目管理的通俗讲解

    写了这么多硬技术文章,今天转一篇在blog.joycode.net看到的软技术文章,对想通过程序员转型为项目经理的人有一些用处. 广为流传的一个关于项目管理的通俗讲解 古老虾 发表于 2005-11- ...

最新文章

  1. CVPR 2022|MPViT:用于密集预测的多路径视觉Transformer
  2. mdi 子窗体 菜单 不合并。
  3. 浅析java内存管理机制
  4. shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器
  5. PHP 依赖注入,从此不再考虑加载顺序
  6. 宽高自适应_css样式写出三角形,宽高自适应的正方形,扇形!
  7. linux编写运行shell程序,Linux的Shell编程运行Shell程序的方法有哪些呢?
  8. 怎么wps解除合并单元格_wps表格怎么锁定单元格
  9. vivado中交织模块_搞定Markdown中的图片,一劳永逸的方法!
  10. 第60课 比特超市 《小学生C++趣味编程》
  11. 如何将QVTKWidget嵌入到QT窗体,实现点云的显示?
  12. 【ACM】 1231 最大连续子序列
  13. unity player 显示播放错误时的解决办法
  14. mac系统linux不能ping外网,Mac上配置Linux网络适配器(NAT模式),无法ping通
  15. DPDK-VPP 学习笔记-02
  16. NRF24L01调试的一些经验之谈
  17. what is the different between Grammar and syntax
  18. 新东方雅思词汇---8.1、reckon
  19. RxJava2 堆栈信息显示不全解决方案
  20. 什么是CPU?什么是计算机?

热门文章

  1. 浅析STM32H7 FDCAN(一)
  2. 什么是原型、原型链、组合继承?
  3. Oracle: SQL精妙SQL语句讲解(常用sql) .
  4. nanotime java_为什么NanoTime不能直接比较大小
  5. java nanotime 转秒_[Java] System.nanoTime()返回结果nanoSeconds和seconds之间的转换
  6. 基于物联网技术智慧园林绿化养护管理信息平台
  7. 动态范围测试—imatest
  8. carla学习笔记(九)
  9. SpringMVC基础入门
  10. ASO优化:为什么要做APP竞品分析