Web 服务器(一)

一、Web 服务器介绍

1WEB服务简介

  • 目前最主流的三个Web服务器是ApacheNginx IIS
  • Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等
  • Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下 载。
  • WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 Web 服务器是可以向发出请求的浏览器提供文档的程序:
  • 服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。
  • 最常用的Web服务器是ApacheNginxMicrosoftInternet信息服务器(Internet Information ServicesIIS)。
  • Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向 Internet上的客户机提供WWWEmailFTP等各种Internet服务。
  • Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上 并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流, 这就是人们常把它们称为HTTP服务器的原因。
  • Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程 序。

2WEB 服务协议

  • WEB 服务应用层使用HTTP协议。
  • HTML(标准通用标记语言下的一个应用)文档格式。
  • 浏览器统一资源定位器(URL)。
  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为 了数据传输的安全,HTTPSHTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份, 并为浏览器和服务器之间的通信加密。WWW 采用的是浏览器/服务器结构,其作用是整理和储存 各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 WindowsUNⅨ 或 Linux 等平台上.

3web 服务器与应用服务器的区别

  • Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程 序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求 (request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 business logic)。
  • Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会 返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request), Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态 响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本, JSP(JavaServer Pages)脚本,servletsASP(Active Server Pages)脚本,服务器端(serverside)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目 的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览 器可以浏览。
  • Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务 器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序。Web 服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应 response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理 transaction processing),数据库连接(database connectivity)和消息(messaging)等功 能。
  • 虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略 strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程 序服务器专有的特征。

4WEB 服务器的工作原理

       Web 服务器的工作原理并不复杂,一般可分成如下 4 个步骤:连接过程、请求过程、应答过程以及闭连接。
  1. 连接过程:Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以 找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。
  2. 请求过程:Web的浏览器运用socket这个文件向其服务器而提出各种请求。
  3. 应答过程:运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所 请求之界面。
  4. 关闭连接:当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。
       Web 服务器上述 4 个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

二、Apache Nginx 的介绍

1Apache 介绍

  • Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台 上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
  • Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。 Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断 有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
  • 目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著 名的网站如AmazonYahoo!W3 ConsortiumFinancial Times等都是Apache的产物,它的成 功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所 有的UnixWindowsLinux系统平台上)以及它的可移植性等方面。
  • Apache 的特性:
几乎可以运行在所有的计算机平台上.
支持最新的http/1.1协议、
简单而且强有力的基于文件的配置(httpd.conf).
支持通用网关接口(cgi)
支持虚拟主机.
支持http认证.
集成perl.
集成的代理服务器
可以通过web浏览器监视服务器的状态, 可以自定义日志.
支持服务器端包含命令(ssi).
支持安全socket层(ssl).
具有用户会话过程的跟踪能力.
支持fastcgi
支持java servlets

2nginx 介绍

  • nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为“engine X”, 是一个高性能的HTTP 和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 IgorSysoev为俄罗斯访问量第二的 Rambler.ru站点开发.
  • Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平 衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpdmod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少 因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
  • nginx做为HTTP服务器,有以下几项基本特性:
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
无缓存的反向代理加速,简单的负载均衡和容错.
FastCGI,简单的负载均衡和容错.
Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模
型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数
Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连
接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当
前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶
段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动
的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就
稳定性而言,nginx比lighthttpd更胜一筹。
Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月
也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

3Apache Nginx 对比

  • Nginx 相对于Apache
高并发响应性能非常好。(单台万级并发连接30000-50000/s(简单静态页))
反向代理性能非常好。(可用于负载均衡)
内存 和 cpu 占用率低。(为Apache的1/5-1/10)
功能较 Apache 少(常用功能均有)
对 php 可使用 cgi 方式和 fastcgi 方式,没有模块编译加载方式

4Apache Nginx总结

  • Apache 拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。
  • Nginx 轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效。
中间件介绍
tomcat
weblogic
jboss
php
uwsgi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6 Module 的加载实现,浏览器加载,ES6 模块与 CommonJS 模块具体解析(2024-04-23)

目录 1、浏览器加载 1.2 加载规则 1.3 ES6 模块与 CommonJS 模块的差异 2、Node.js 的模块加载方法 2.1 概述 2.1.1 package.json 的 main 字段 2.1.2 package.json 的 exports 字段 (1)子目录别名 (2)main 的别名 &…

super与this

目录 原型链与继承继承中的原型链 classsuper与this 我们可能会对一个问题感到好奇:为什么在派生类中,我们需要在调用this之前调用super。我们通常将其视为一种规范,却很少深入探究这个规范的真正意义。许多人认为super不过是ES6之前继承方式…

python作业 切片逆转

题目: (反转显示一个整数)编写下面的函数,反向显示一个整数。 列如:reserse(3456)。编写一个测试程序,提示用户输入一个整数,然后显示它的反向数。 第一步定义一个函数: def rev…

Django——Auth模块以及admin站点

Django——Auth模块 一、Auth 模块 Auth 用户认证,本质上也是设置 Session。 Django 认证系统同时处理认证和授权认证:验证一个用户是否为 django 声明的用户,如果是可以进行登录授权:决定一个已经验证的用户有哪些功能是允许操…

Python3操作redis百万级数据迁移,单机到单机,集群到集群

Python3操作redis大量数据迁移 脚本 背景使用前使用注意事项脚本总结 背景 之前写过一个用python迁移redis的脚本,但是对于小批量的数据、单节点的,还可以用。对于大量数据,集群模式的就不太适合了。所以写了下面的脚本,而且做了…

【前端开发基础知识快速入门】

前端开发基础知识&快速入门 一、VSCode 使用1.1 安装常用插件1.2 创建项目1.3 创建网页1.4 运行效果二、ES62.1 简介2.2 什么是 ECMAScript2.3 ES6 新特性2.3.1 let 声明变量2.3.2 const 声明常量(只读变量)2.3.3 解构表达式2.3.4 字符串扩展2.3.5 函数优化2.3.6 对象优化…

Ubuntu中apt更新时报错The certificate issuer is unknown的解决办法

Ubuntu 22.04更新apt出现The certificate issuer is unknown的解决办法 问题描述解决办法讨论 问题描述 使用docker安装Ubuntu22.04,官网给出的镜像只是一个裸系统,预装软件很少。换阿里源以后,apt update,出现如下报错&#xff…

【C语言】动态内存分配(一)

目录 1.为什么要有动态内存分配 2.malloc和free 2.1malloc 2.2free 1.为什么要有动态内存分配 我们已经掌握的内存开辟方式有: 但是上述的开辟空间的方式有两个特点: ⭐空间开辟大小是固定的。 ⭐数组在申明的时候,必须指定数组的长度,数组空间一旦…

GateWay具体的使用之全局token过滤器

1: 创建过滤器类 首先,你需要创建一个实现了GatewayFilter接口或者继承AbstractGatewayFilterFactory类的过滤器类。这里以实现GatewayFilter接口为例,创建一个全局token过滤器。 package com.by.filter;import cn.hutool.core.collection.CollUtil; imp…

SQL提升

1. SQL TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 **注释:**并非所有的数据库系统都支持 TOP 子句。 1.1 SQL TOP 语法 SQL Server 的语法: SELECT TOP number|percent c…

OpenCV C++实现区域面积筛选以及统计区域个数

目录 1、背景介绍 2、代码实现 2.1 获取原图 2.1.1 区域图像imread 2.1.2 具体实现 2.2 获取图像大小 2.3 阈值分割 2.3.1 阈值分割threshold 2.3.2 具体实现 2.4 区域面积筛选 2.4.1 获取轮廓findContours 2.4.2 获取轮廓面积contourArea 2.4.3 填充区域fil…

http请求与响应

目录 HTTP请求格式 HTTP响应格式 HTTP请求格式 请求行:请求数据第一行(请求方式,资源路径,协议) 请求头:第二行开始,格式key:value 请求体:POST请求,存放在请求参数 非restful方式&#xff1…

浅谈大数据时代下的电商风控||电商数据API接口

抢抢抢!最后1天,双十一直播活动来啦!抢直播专属优惠…… 视频号 随着大数据时代的兴起,互联网电商风控已经从无风控、人工抽取规则为主的简易规则模型发展到当前基于大数据的风控。与金融风控不同,互联网电商风控呈现出…

详解MyBatis配置文件开发与注解式开发

首先呢,五一快来啦!提前祝各位宝子们五一玩得开心,然后讲解一下MyBatis框架呀!!! 一.框架介绍 MyBatis 的主要特点 二.MyBatis工作流程 1. 初始化和配置 2. 创建 SqlSessionFactory 3. 获取 SqlSession 4. 映射器绑定 5. 执行操作 6.…

力扣1518. 换水问题

题目链接 力扣1518. 换水问题 简单方法(模拟) 思路 对换水进行模拟,每次喝完 n u m E x c h a n g e numExchange numExchange 瓶水后就去换一瓶水,直到不能再兑换为止,也就是剩余水的数量小于 n u m E x c h a n g e numExchange numE…

vscode中jsconfig.json文件首行提示错误

在使用react框架开发前端时,文件jsconfig.json首行提示错误,打开设置,勾选如下图这项

jupyter lab 如何安装和启动

Jupyter Lab 是一种基于 web 的交互式开发环境,用于 Jupyter 笔记本。与传统的 Jupyter 笔记本相比,它提供了更友好、更可扩展的界面,具有代码单元格、markdown 单元格、小部件和文件浏览器等功能。 1.安装 Jupyter Lab: 打开终端或命令提示…

【Go】通道作为函数参数

目录 一、Pings Pongs例子程序 二、使用通道进行任务分配和结果收集 三、使用通道进行错误处理 四、使用通道实现速率限制 五、使用通道进行数据同步 总结 共性 解决的问题类型 实际应用示例 Go 语言中,通道(channel)是实现协程&…

Linux 第十一章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Java 图形化框架 - AWT、Swing

文章目录 关于 AWTAWT继承体系 关于 Swing关于 JFC 和 Swing Swing 组件组件层次Swing组件和AWT组件的对应关系:Swing组件按照功能来分类: Java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window…