3.1 Web 概述

  • Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在 Internet 上的一种网络服务,为浏览者在 Internet 上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将 Internet上 的信息节点组织成一个互为关联的网状结构。
  • 我们通常所说的 WWW 服务、Web 服务,其实是一个意思,泛指通过 HTTP 协议传输,使用图形化界面来展示信息的一种方式。也就是俗称的网站或者网页

Web 相关概念

  • 网页(Web 页面):

    • 网页,是网站中的一个页面,通常是网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。
  • 网站(WebSite):
    • 网站,指根据一定的规则,使用 HTML 等工具制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布或收集信息。
    • 网站就是一组相同所属的网页的集合
  • HTML(超文本标记语言):
    • “超文本” 就是指页面文本内可以包含图片、链接,甚至音乐、程序等非文字元素。
    • 是一种规范,一种标准,超文本标记语言通过标记符号来标记要显示的网页中的各个部分
    • 网页的本质是使用 HTML 语言编写代码所产生的文件
  • 静态网页:
    • 指纯 HTML 语言编写,呈现的内容固定化的 Web 页面
    • 静态网页所呈现的所有内容都编写在源文件中,更改内容只能修改源代码
  • 动态网页:
    • 除了 HTML,还使用相应的动态程序序言编写的 Web 页面
    • 动态网页中呈现的内容一般存储在数据库中,通过程序语言来调用数据
  • HTTP(超文本传输协议):
    • 用于发布和接收 HTML 页面的协议,定义了 Web 客户端和服务器端的请求和应答标准
    • 默认工作在 TCP 80 端口
  • HTTPS(HTTP over SSL)
    • 基于 SSL 的 HTTP 协议,使用 SSL 协议来保护 HTTP 传输,使 HTTP 协议更加安全
  • 浏览器(Browser):
    • 可以接收并解析 HTML 语言,使 HTML 能够图形化显示,并与 Web 服务器进行交互的应用程序

3.2. Web 服务组件

如图 1-2,要构建一个网站,一般需要具备 Web 服务系统、Web 服务软件、Web 开发语言、数据库这四个组件。这只是比较概括性的划分了 Web 服务的组件,如果要细分的话,还可以细分为操作系统、存储(Web 源文件和数据库)、Web 容器、中间件、Web 服务端语言、Web 开发框架、Web 应用、Web 前端框架、第三方内容等组件。本课程内容不关注 Web 的搭建和优化,所以只按照图示组件讲解

3.2.1 Web 服务系统

Web 作为网络服务,必然需要基于操作系统来运行和工作,这里的 Web 服务系统指的就是 Web 服务运行在哪种操作系统上

  • Windows

    • 作为使用最广泛的电脑端操作系统,Windows 无疑是良好的运行 Web 服务的操作系统平台。无论是桌面版的 Windows,还是 Server 版的 Windows,都具备运行 Web 服务的能力,但生产环境中的 Web 服务更多的会选择 Server 版的 Windows,如 Windows Server 2003、Windows Server 2008、Windows Server 2012 等
    • Windows 拥有优秀的图形化界面处理能力,也成为了众多 Web 初学者入门会选择的操作系统
  • Linux
    • Server 端的操作系统,无疑是 Linux 的天下。基于开源、高效、安全等优点,Linux 成为了生产环境中搭建 Web 服务的首选操作系统
    • 常见的有 CentOS、RatHat、Ubuntu,互联网中几乎 99% 的 Web 服务都运行在 Linux 系统之上

3.2.2 Web 服务软件

Web 服务软件指 Web 服务器,也称为 HTTP 服务器,是响应来自浏览器的 HTTP 请求,并且发送出网页文件的 Web 服务端软件。 想要把自己的网站发布到网络中让用户可以访问,就需要 Web 服务软件来搭建网站

IIS(Internet Information Service)

  • IIS 是微软在 Windows 操作系统中自带的 Internet 服务器软件,提供包括 Web、FTP、SMTP 等服务器功能,IIS 也只能运行在 Windows 中
  • IIS 在几乎所有版本的 Windows 中都自带了,无需独立下载,全图形化界面操作,继承了 Windows 的操作风格,使用非常简单便捷
  • IIS 支持发布静态网站,以及 ASP、ASP.NET 的动态网站,使用相应中间件还可以支持发布 PHP 的动态网站
  • IIS 在安全性上一直被业界所诟病,著名的 IIS 6.0 版本中的文件解析漏洞可以让黑客非常轻松的绕过网站限制,上传 WebShell,来获得系统权限。直到 IIS 7.5 版本以后情况才有所好转

Apache

  • Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩充,将 Perl/Python 等解释器编译到服务器中。同时 Apache 音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。
  • 虽然 Apache 可以非常完美的运行在各种操作系统中,但是绝大多数的 Apache 还是运行在 Linux 之上,Apache 也成为了众多 Linux 发行版本的自带应用
  • 严格来说,Apache 只支持发布静态网站、但可以通过中间件来支持 PHP,ASP、ASP.NET、JSP,但 Apache 仍然被大多数用来发布 PHP 网站
  • Apache 虽然也存在安全性的漏洞,但由于其开源性,漏洞的修补和版本的更新速度非常快,相比 IIS, Apache 会更加安全

Nginx

  • Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  • Nginx 只能安装在 Linux 系统中,但是也有 Windows 的移植版
  • Nginx 是 Apache 的最佳替代品,相比 Apache,Nginx 在处理高并发业务时,资源消耗更低,性能更强
  • Nginx 本身只是一款反向代理软件,只支持 HTML 静态页面,需要通过各种中间件来支持其他动态页面
  • 虽然从性能上来讲,Nginx 要优于 Apache,但 Nginx 也存在模块少、BUG 多,稳定性较差的缺点

Tomcat

  • Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
  • Tomcat 可以作为一个 Web 服务软件,同样也可以作为 Apache 的一个中间件来使 Apache 可以支持 JSP 站点
  • Tomcat 可以运行在 Windows 和 Linux 中

Weblogic

  • Weblogic 是一个基于 JAVAEE 架构的中间件,WebLogic 是用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器。

3.2.3 Web 开发语言

Web 开发语言是指用于编写动态网页的语言,目前几乎所有的网站都是动态网页技术编写的。就算很多网站浏览时发现 URL 后缀是 html,也是通过后台做了动转静。

  • PHP(超文本预处理器)

    • PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到 HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
    • PHP 是目前使用最广泛的 Web 开发语言
  • ASP(动态脚本页面)
    • 是微软公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的 web 应用程序。当服务器收到对 ASP 文件的请求时,它会处理包含在用于构建发送给浏览器的 HTML 网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP 文件也可以包含文本、HTML(包括相关的客户端脚本)和 com 组件调用。
    • ASP 简单、易于维护,是小型页面应用程序的选择。ASP 语言并不面向对象,开发难度相对较大,一般不用于大中型网站
  • ASP.NET
    • ASP.NET 又称为 ASP+,不仅仅是 ASP 的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET 基于 .NET Framework 的 Web 开发平台,不但吸收了 ASP 以前版本的最大优点并参照 Java、VB 语言的开发优势加入了许多新的特色,同时也修正了以前的 ASP 版本的运行错误。
    • 一般多见于政府机构和国企的网站
  • JSP(JAVA 服务器页面)
    • JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML 文件中插入 Java 程序段 (Scriptlet) 和 JSP 标记 (tag),从而形成 JSP 文件,后缀名为 .jsp。 用 JSP 开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。
  • CMS(内容管理系统)
    • 可以把 CMS 理解为网站模板,允许用户根据统一的网站模板,快速生成自定义的个人或企业站点;CMS 提供常见企业网站所需的的信息展示、信息更新、信息删除、信息管理等功能,包括非常详细的网站风格自定义设置。
    • CMS 有各种语言编写的,常见的有 ASP、PHP、ASP.NET
    • 常见的有动易 CMS,织梦 CMS,PHPcms 等

3.2.4 数据库

数据库(Database),即为数据的仓库,用于存储和记录数据信息。在动态网站的架构中,页面展示的内容并不是写在页面中,而是存储在数据库中,Web 服务通过动态语言来调用数据库中的数据,产生静态页面后再传递至客户端浏览器。这样就避免了网站内容更新时去修改源文件。只需要更新数据库就行了

MySQL

  • MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
  • 目前在 Web 架构中使用最广泛的数据库系统

SQL Server

  • SQL Server 是由微软开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。Microsoft SQL Server 近年来不断更新版本,1996 年,Microsoft 推出了 SQL Server 6.5 版本;1998 年,SQL Server 7.0 版本和用户见面;SQL Server 2000 是 Microsoft 公司于 2000 年推出,目前最新版本是 2017 年份推出的 SQL SERVER 2017。

Oracle

  • Oracle 是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说 Oracle 数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

Access

  • Microsoft Office Access 是由微软发布的小型关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 套件的程序之一。

数据库管理工具

  • PhpMyAdmin:一个以 PHP 为基础,以 Web 方式架构在网站主机上的 MySQL 的数据库管理工具,让管理者可用 Web 图形化界面管理 MySQL 数据库。
  • Navicat:一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。

3.3 Web 服务常见架构

Web 服务架构指选择什么开发语言 + Web 服务软件 + 数据库 + 操作系统的组合来搭建 Web 服务,虽然严格来说,所有的组件都可以自由组合,但是因为某几种常被放在一起使用,所以拥有了越来越高的兼容度,逐渐共同组成了一个个强大的 Web 应用程序平台

3.3.1 LAMP

  • Linux + Apache + MySQL + PHP
  • 被誉为 Web 服务黄金组合,适用于大型网站架构,稳定性高,常见于企业网站。大多数网站都采用的该架构

3.3.2 LNMP

  • Linux + Nginx + MySQL + PHP
  • 使用 Nginx 来取代 Apache,对性能有较高要求的 Web 站点可以选择这种架构组合

3.3.3 WAMP

  • Windows + Apache + MySQL + PHP
  • 把 Apache 放在 Windows 操作系统中运行,适用于中小型网站架构,易于管理,常见于教育(大学等)、政府事业单位

3.4 其他

  • IIS + ASP + Access:大多用在学校、地方政府等站点
  • JSP + Tomcat + Oracle:大多用在企业内部 ERP 系统、金融机构站点

加扣57-08-58-337

3. Web 服务原理相关推荐

  1. web渗透-Web服务通信原理

    Web服务通信原理 目录 一.基本知识介绍 1.常见的服务器系统 2. 绝对路径与相对路径 3.CMD命令(伪DOS)win+R 4.网络方面 二.网页浏览流程 三.常见的web容器 WEB容器是什么 ...

  2. web服务:原理与技术01

    电子服务系统设计复习总结01 前言 本文档原意为考试复习所用,基于 <web服务:原理与技术> 课本. 第一章 1.什么是WS (Web Service) ​ ①当服务使用因特网作为通信手 ...

  3. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  4. 一文讲透推荐系统提供web服务的2种方式

    作者丨gongyouliu 编辑丨zandy 来源 | 大数据与人工智能(ID: ai-big-data) 推荐系统是一种信息过滤技术,通过从用户行为中挖掘用户兴趣偏好,为用户提供个性化的信息,减少用 ...

  5. 轻松实现基于Heartbeat的高可用web服务集群

    高可用集群就是为了保证某项服务能够时时在线,我们可以通过几个9来衡量一个高可用集群提供服务的稳定性,例如5个9的高可用集群必须保证服务一年在线的时间占99.999%,也就是说一年的时间中仅允许服务电线 ...

  6. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  7. Web服务集成CRM的应用

    本文讲的是Web服务集成CRM的应用,[IT168 资讯]近年来,很多企业应用集成(EAI)供应商都提供专有的适配器和集成服务器工具集,试图解决企业应用集成过程中面临的挑战.虽然EAI解决方案很有效, ...

  8. 基于 REST 的 Web 服务:基础

    from: https://www.ibm.com/developerworks/cn/webservices/ws-restful/ 基础 REST 定义了一组体系架构原则,您可以根据这些原则设计以 ...

  9. WSE3.0构建Web服务安全(3):WSE3.0策略配置、证书、签名、与实例开发

    继WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密.公钥.密钥.证书.签名的区别和联系以及X.509 证书的获得和管理之后,今天我 ...

最新文章

  1. Deepfake这次不换脸了,直接换了座城市
  2. videoJS如何用
  3. iOS并发编程指南之同步
  4. 牛客 - 牛半仙的妹子Tree(按询问分块+RMQ求LCA)
  5. 又是毕业季I 【O(1)数论】(洛谷P1372题题解,Java语言描述)
  6. C语言程序输入一个三位数取个位十位百位
  7. 图片base64的换行问题处理
  8. 我的 2019 年 - 当勤精进,但念无常,何以解忧,唯有暴富
  9. 【Python游戏】Python版本的雷霆战机游戏,最新最简单版本来了
  10. 苹果2019年财报数据:年收入2600亿美元,市值1.3万亿美元
  11. 七天学会NodeJS (原生NodeJS 学习资料 来自淘宝技术团队)
  12. 螺旋传动设计系统lisp_螺旋传动设计
  13. JS--利用setTimeout模拟setInterval
  14. 数据库表和表字段的命名规范
  15. 日历 fullCalendar 整合农历
  16. (SEED-LabCross-Site Scripting (XSS) Attack Lab跨站脚本攻击实验
  17. 科研入门——文献阅读
  18. 【23】基于java教师科研项目管理系统
  19. ffffffffffffff
  20. 【PyG2Plot】来试一下蚂蚁开源的图表库PyG2Plot效果如何~~

热门文章

  1. 微信能修图!美图秀秀们惊恐之后该怎么做
  2. 守候购物小助手插件 v2.6.14
  3. java中pageInfo分页带条件查询+查询条件的回显
  4. 分享两个Latex在线公式编辑器的网站
  5. 交代码后各种稀奇古怪的字母
  6. 互联网如何利用短信平台
  7. 如何与你讨厌的人相处
  8. 在布局空间标注的尺寸量不对_为什么在CAD布局中标注模型空间图形尺寸差别很大?...
  9. TensorFlow2+OpenCV实现人像采集与识别
  10. 力扣 1846. 减小和重新排列数组后的最大元素(中等)