云计算实训16——关于web,http协议,https协议,apache,nginx的学习与认知

一、web基本概念和常识

1.Web
Web 服务是动态的、可交互的、跨平台的和图形化的为⽤户提供的⼀种在互联⽹上浏览信息的服务
2.web服务器(web server)
也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。
3.动态⻚⾯与静态⻚⾯的差别
(1)URL不同
静态⻚⾯链接⾥没有“?”
动态⻚⾯链接⾥包含“?”
(2)后缀不同 (开发语⾔不同)
静态⻚⾯⼀般以 .html .htm .xml 为后缀
动态⻚⾯⼀般以 .php .jsp .py等为后缀
(3)内容不同
静态⻚⾯的内容是固定的
动态⻚⾯的内容会因⽤户、浏览器、时间、地点等⽽发⽣变化。

二、HTTP 协议

HTTP协议是超⽂本传输协议的缩写,英⽂是Hyper Text Transfer Protocol。它是从WEB服务器传输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议。
1、HTTP 原理
HTTP是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML ⽂件,图⽚⽂件,查询结果等。 HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL向HTTP服务端即web服务器发送所有请求,web服务器收到客户端请求后进⾏响应。
2、HTTP 特点
1. http协议⽀持客户端/服务端模式,也是⼀种请求/响应模式的协议。
2. 简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。请求⽅法常⽤的有GET、HEAD、POST。
3. 灵活:HTTP 允许传输任意类型的数据对象。传输的类型由Content-Type 加以标记。除了可以响应字符串之外,还可以上传和下载⼆进制⽂件。
4. ⽆连接:限制每次连接只处理⼀个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态的技术,⼀个叫做 Cookie,⼀个叫做 Session。
5. ⽆状态:⽆状态是指协议对于事务处理没有记忆,后续处理需要前⾯的信息,则必须重传。
3、URI 和 URL 的区别
(1)HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴连接。
        URI:Uniform Resource Identifier 统⼀资源标识符
        URL:Uniform Resource Location 统⼀资源定位符
(2)URI 是⽤来标识⼀个具体的资源的,我们可以通过 URI 知道⼀个资源是什么,使⽤它就能够
唯⼀地标记互联⽹上资源。
(3)URL 则是⽤来定位具体的资源的,标识了⼀个具体的资源位置。互联⽹上的每个⽂件都有⼀
个唯⼀的。
(4)URL,也就是我们俗称的⽹址,它实际上是 URI 的⼀个⼦集。
(5)URI 不仅包括 URL,还包括 URN(统⼀资源名称),它们之间的关系如下
常⻅请求⽅法
Ⅰ. 客户端向服务器提出请求的⽅法
1. GET: 去向服务器获取资源。即请求指定的⻚⾯信息,并返回
实体主体。
2.POST:⽤来传输请求的实体主体。向指定资源提交数据进⾏处理请求。数据被包含在请求体中。POST请求可能会导致新的资源建⽴或已有资源修改。
3.PUT:从客户端向服务器传送的数据取代指定的⽂档内容。
4.HEAD:从服务器端获取报⽂⾸部信息,确定客户端输⼊的 URL有效性和资源的更新⽇期。类似于get请求,只不过返回的响应没有具体内容,只⽤于获取头部
5.OPTIONS:⽤来询问服务器⽀持哪些⽅法。即获取服务器⽀持的请求⽅法
6.DELETE:⽤来删除⽂件的。请求服务器删除指定的⻚⾯
Ⅱ. 服务器回应报⽂

三、HTTPS 协议

HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS应运⽽⽣。
HTTPS 的全称为(HyperTextTransferProtocoloverSecureSocketLayer)
HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。
HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说HTTPS=HTTP+SSL。
1.HTTP使⽤明⽂传播的三⼤⻛险
(1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。
(2)篡改⻛险(tampering):第三⽅可以修改通信内容。
(3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通信。
SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到:
(1)所有信息都是加密传播,第三⽅⽆法窃听。
(2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。
(3)配备身份证书,防⽌⽌身份被冒充。
 
2、HTTPS 安全通信的四⼤原则
(1)机密性
就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数据,那么这个加密的数据对⽅不能轻易获得。
(2)完整性
是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据是⼀个完整的数据内容。
(3)身份认证
数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的⼈。可以解决冒充这样的⻛险。
(4)不可否认性
不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且签名按⼿印,如此⼀来就不能抵赖。
3、通信原理
(1)对称加密
对称加密:通信双⽅都使⽤同⼀把密钥给报⽂进⾏加密和解密。
(密码验证)
对称加密具备速度快,性能⾼的特点。是HTTPS的最终采⽤的加密⽅式。 对称加密的通信过程中双⽅都需要同样的密钥。
(2)⾮对称加密
⾮对称加密:解决单项对称密钥的传输问题。就是加密和解密的双⽅使⽤不同的密钥。
(密钥对验证)
公钥, 是可以公开的。私钥,不能公开。
公钥加密的内容只有私钥可以解密,私钥加密的内容只有公钥可以解密。
(3)对称加密和⾮对称加密的综合版本
1. 某⽹站拥有⽤于⾮对称加密的公钥A、私钥A。
2. 浏览器向⽹站服务器请求,服务器把公钥A明⽂给传输浏览器。
3. 浏览器随机⽣成⼀个⽤于对称加密的密钥X,⽤公钥A加密后传给服务器。
4. 服务器拿到后⽤私钥A解密得到密钥X。
5. 这样双⽅就都拥有密钥X了,且别⼈⽆法知道它。之后双⽅所有数据都通过密钥X加密解密即
可。
成功!HTTPS基本就是采⽤了这种⽅案。
还有⼀个问题,公钥在传输过程中,也有可能被劫持替换,解决办法是数字证书。
(3)CA
认证机构,称为CA。服务端可以向CA申请认证证书,在证书上附加公钥信息,然后发布给客户端。服务端在申请证书的过程中,会提交⽐如DNS主机名等⽹站信息,CA会根据这些信息⽣成证书。
(4)证书
如此⼀来,客户端拿到证书之后,就可以获得证书上⾯我们附带的公钥,再⽤这个公钥加密‘对称加密的密钥’传递给服务端。
(5)数字签名
证书的真假可以通过数字签名来验证。数字签名就相当于学历证书上的证书编号。

四、apache服务

1.特点
模块化设置、开放源代码、跨平台应⽤、⽀持多种 web 编程语⾔、运⾏稳定。
2.⼯作模式
(1)Prefork:使⽤进程处理请求,在该模式中⽐较消耗内存,但稳定性⾼,如某个进程出现问题,不会影响其他请求。
(2)Worker:属于多进程模式,每个进程⽣成多个进程;在该模式下消耗的资源⽐较⼩,适合⾼并发请求,但稳定性没有 Prefork 模式稳定。
(3)Event:该模式与 Worker 模式较为相似,不同之处在于在该模式下可以解决keepalive ⻓连接时占⽤线程资源导致浪费的问题。
(4)keep-alive ⻓连接:TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建⽴新连接所需的时间,还节约了带宽。实现⻓连接要客户端和服务端都⽀持⻓连接。
3.搭建 apache 服务器
安装并设置防⽕墙
安装http服务
[root@server2 ~]# yum -y install httpd
#启 动apache
[root@server2 ~]# systemctl start httpd
#查看端⼝确认apache已启⽤
[root@server2 ~]# netstat -anpt | grep httpd
#查看防⽕墙是否启⽤,若启⽤则设置apache服务可通⾏规则
[root@server2 ~]# systemctl status firewalld.service
#设置防⽕墙放⾏apache
[root@server2 ~]# firewall-cmd --permanent --add-service=http 
#重载防⽕墙规则
[root@server2 ~]# firewall-cmd --reload
#查看当前区域下防⽕墙所有规则
[root@server2 ~]# firewall-cmd --list-all
apache 配置⽂件
[root@server2 ~]# vim /etc/httpd/conf/httpd.conf
apache 索引⽂件
[root@server2 ~]# vim /var/www/html/index.html
[root@server2 ~]# systemctl reload httpd #重载配置单
服务器访问测试
浏览器内输⼊搭建好的 httpd 服务器 IP 地址或域名(当前服务器地址为 192.168.33.110)

五、nginx服务

nginx服务器的特点

(1)模块化设计
Nginx 将模块分为核⼼模块、HTTP 模块、事件模块和邮件模块四类。每个模块都有特定的职责,
从⽽实现了整个 Web 服务器的功能。

(2)低内存消耗,⾼并发

Nginx 使⽤ epoll and kqueue 作为开发⼯具,能够⽀持最⼤50000 个并发连接数的响应;不论是系

统资源开销还是 CPU 使⽤效率都很优秀。

(3)事件驱动

nginx 采⽤异步⽅式处理请求。
同步:指在发送⽅发出消息后,需要等待接收到接收⽅发回的响应,或者通过回调函数来接收到对
⽅响应信息。
异步:指在发送⽅发出请求后,接收⽅不需要返回消息或者不等待返回消息,直接提供响应请求机
(4)⾼可靠性,master
⼀个主进程和多个⼯作进程。⼯作进程是单线程的,且不需要特殊授权即可运⾏;
master进程:主要⽤来监控worker进程⼯作状态进⾏相应重启、停⽌等操作。
worker进程:进⾏具体提供服务,接受请求和处理请求。
(5)⽀持热更新配置、⽇志⽂件滚动、平滑升级与 worker 架构
/usr/local/nginx/sbin/nginx -s reloadhtml⽬录中的⽂件发上修改之后,不需要nginx服务
可向 master 发送 USR1、QUIT 等信号,⽆需强制停⽌服务即可完成热更新。
向 master 发送的 USR1,可实现⽇志⽂件滚动。
向 master 发送的 USR2,可实现平滑升级。
(6)丰富的扩展模块
可在编译安装 nginx 时指定拓展模块,例如:nginx-sticky-module 模块(基于 cookie 来进⾏负载
转发)。
Nginx 和 Apache 区别
(1)架构
Apache 采⽤多进程架构,每个请求都由⼀个独⽴的进程处理;⽽Nginx采⽤异步事件驱动的架
构,可以处理更多的并发连接。
(2)性能
由于Nginx的架构设计,它可以处理更多的并发连接,⽽且在⾼负载情况下表现更加稳定和可靠。
因此,Nginx通常被认为是⽐Apache更⾼效的Web服务器。
(3)配置
Apache 的配置⽂件⽐较复杂,需要⼀定的学习和经验才能正确配置;⽽ Nginx 的配置⽂件⽐较简
洁和可读性强,更容易理解和配置。
(4)功能
ngin x有许多模块可以扩展其功能,例如 mod_rewrite ⽤于URL 重写,mod_ssl⽤于 SSL 加密等;
⽽apach 的功能⽐较简单,但是可以通过第三⽅模块扩展其功能。
Nginx 基本功能
静态资源 Web 服务器
nginx 可实现动静资源分离
基于域名/IP/端⼝的虚拟主机
⼀个 nginx 主进程,指定⼀个配置⽂件,配置⽂件内有多个虚拟主机。如果不⽤虚拟机,⼀个域名
就要对应⼀个服务器,浪费资源。
虚拟主机:在Web服务⾥就是⼀个独⽴的⽹站站点,这个站点对应独⽴的域名(也可能是IP或端
⼝),具有独⽴的程序及资源⽬录,可以独⽴地对外提供服务供⽤户访问。
Ⅰ.基于域名的虚拟主机
以不同的多个域名区分不同的虚拟主机(IP 相同),放在⼀个nginx服务上,能够让⽤户有序访问⽣产⽤途
Ⅱ.基于端⼝的虚拟主机
以不同的端⼝,来区分多个虚拟主机,也是放在⼀个nginx服务上,能够让⽤户有序访问
Ⅲ.基于 IP 的虚拟主机
以不同 IP 区分不同的虚拟主机。
HTTP/HTTPS、SMTP、POP3 和 TCP/UDP 反向代理
客户端代理,增强客户端的作⽤
反向代理是保护服务器
反向代理是⼀种代理服务器的配置模式,它代表服务器向客户端提供服务。
客户端发送请求到反向代理服务器,然后代理服务器将请求转发到后端的真实服务器上,并将响应
返回给客户端。简单理解为⽤户直接访问反向代理服务器就可以获得⽬标服务器的资源
负载均衡
所谓负载均衡,就是 Nginx 把请求均匀的分摊给上游的应⽤服务器,这样即使某⼀个服务器宕机也
不会影响请求的处理,或者当应⽤服务器扛不住了,可以随时进⾏扩容。
⻚⾯缓存
Nginx 不仅仅是⼀个 Web 服务器,它还可以作为⼀个缓存服务器使⽤。
通过 Nginx 缓存,可以对⼀些静态资源或者数据更新频率较低的后端服务做缓存,降低静态资源或
后端服务的响应时间,同时也会降低后端的负载。
⽐如对⼀些图⽚,css或js做⼀些缓存,那么在每次刷新浏览器的时候,就不会重新请求了,⽽是
从缓存⾥⾯读取。这样就可以减轻服务器的压⼒。
⽀持代理 FastCGI、uWSGI 等应⽤服务器
CGI:描述了服务器(nginx,apache)和请求处理程序(django,flask,springboot web框架)之间传
输数据的⼀种标准。定义了客户端与服务器之间如何传输数据。
FastCGI:快速通⽤⽹关接⼝(Fast Common Gateway Interface/FastCGI)是⼀种让交互程序与
Web服务器通信的协议。FastCGI是早期通⽤⽹关接⼝(CGI)的增强版本。
WSGI:为Python定义的 web 服务器和 web 框架之间的接⼝标准。
uwsgi:uWSGI 服务器实现的独有的协议,定义传输信息的类型,是⽤于前端服务器与 uwsgi 的
通信规范(uWSGI 服务器⾃由的⼀个协议)。
uWSGI:⼀个Web Server(web服务器),即⼀个实现了WSGI协议的服务器,处理发来的请求及
返回响应。
⽀持 gzip、expires
当运维⼈员将要锁包放到html中,会⾃动部署nginx ⽀持资源压缩和缓存控制。
URL Rewrite
192.168.1.3/abc
192.168.1.3/a/b/c/
Rewrite 主要实现url地址重写,以及重定向,就是把传⼊web的请求重定向到其他 url的过程。
路径别名
资源路径的别名(root 和 alias)。
基于 IP、⽤户的访问控制
nginx 可对指定 IP ⽹段或某个特定 IP 做访问控制(allow:允许;deny:拒绝)。
11 )⽀持访问速率、并发限制

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

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

相关文章

C#使用csvhelper实现csv的操作

新建控制台项目 安装csvhelper 33.0.1 写入csv 新建Foo.cs namespace CsvSut02;public class Foo {public int Id { get; set; }public string Name { get; set; } }批量写入 using System.Globalization; using CsvHelper; using CsvHelper.Configuration;namespace Csv…

[数据集][目标检测]金属罐缺陷检测数据集VOC+YOLO格式8095张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8095 标注数量(xml文件个数):8095 标注数量(txt文件个数):8095 标注…

使用Process Explorer和Dependency Walker排查dll动态库加载失败的问题

目录 1、问题描述 2、如何调试Release版本的代码? 3、使用Process Explorer查看exe主程序加载的dll库列表,发现mediaplay.dll没有加载起来 4、使用Dependency Walker查看rtcmpdll.dll的库依赖关系和接口调用情况,定位问题 4.1、使用Depe…

Javascript面试基础6【每日更新10】

Gulp gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成 Gulp的核心概念:流 流,简单来说就是建立在面向对象基础上的一种抽象的…

多微信聚合神器:高效沟通,一个界面全搞定!

大家都知道,频繁的来回切换微信,不仅浪费时间,还容易错过重要的信息。 今天,我要向大家推荐一款多微信管理神器——个微管理系统,助你实现统一管理,聚合聊天,让沟通变得更加高效。 1、网页扫码…

基于MindIE实现通义千问Qwen推理加速

一、昇腾开发者平台申请镜像 登录Ascend官网昇腾社区-官网丨昇腾万里 让智能无所不及 二、登录并下载mindie镜像 #登录docker login -u XXX#密码XXX#下载镜像docker pull XXX 三、下载Qwen的镜像 使用wget命令下载Qwen1.5-0.5B-Chat镜像,放在/mnt/Qwen/Qwen1.5-…

【无标题】Git(仓库,分支,分支冲突)

Git 一种分布式版本控制系统,用于跟踪和管理代码的变更 一.Git的主要功能: 二.准备git机器 修改静态ip,主机名 三.git仓库的建立: 1.安装git [rootgit ~]# yum -y install git 2.创建一个…

【策略工厂模式】记录策略工厂模式简单实现

策略工厂模式 1. 需求背景2. 代码实现2.1 定义基类接口2.2 排序策略接口定义2.3 定义抽象类,实现策略接口2.4 具体的排序策略实现类2.5 实现策略工厂类2.6 控制类 3. 启动测试4. 总结 1. 需求背景 现在需要你创建一个策略工厂类,来根据策略实现各种排序…

【JAVA】记录一次前端无能造成的 线上bug

有一个需求是 当方式切换 垫资时 清空 当前所选细单商品 但是前端的奇葩 操作是,只是在页面上清空 细单。 不请求 后台删除 细单 让前端 必须 清空同时 请求后台 删除细单 但是 该前端 技术不行, 嫌麻烦 不做 只好 后台 判断该类型时 进行删除操作…

AutoMQ 开源可观测性方案:夜莺 Flashcat

01 引言 在现代企业中,随着数据处理需求的不断增长,AutoMQ [1] 作为一种高效、低成本的流处理系统,逐渐成为企业实时数据处理的关键组件。然而,随着集群规模的扩大和业务复杂性的增加,确保 AutoMQ 集群的稳定性、高可…

权限管理的概述以及vue开发前端的路由、菜单、按钮权限控制实现方案

1. 权限管理概念 1.1 权限定义 权限管理是确保用户只能访问被授权资源的机制。在计算机系统中,权限通常指对特定数据或功能的访问权。权限的设置和控制对于保护数据安全和系统安全至关重要。 1.2 前端权限控制重要性 前端权限控制是用户与应用交互的第一道防线。…

黑马头条Day12-项目部署_持续集成

一、今日内容介绍 1. 什么是持续集成 持续集成(Continuous integration,简称CI),指的是频繁地(一天多次)将代码集成到主干。 持续集成的组成要素: 一个自动构建过程,从检出代码、…

jdk版本管理利器-sdkman

1.什么是sdkman? sdkman是一个轻量级、支持多平台的开源开发工具管理器,可以通过它安装任意主流发行版本(例如OpenJDK、Kona、GraalVM等等)的任意版本的JDK。通过下面的命令可以轻易安装sdkman: 2.安装 curl -s "https://…

什么是 5G?

什么是 5G? 5G 是第五代无线蜂窝技术,与以前的网络相比,它提供了更高的上传和下载速度、更一致的连接以及更高的容量。5G 比目前流行的 4G 网络更快、更可靠,并有可能改变我们使用互联网访问应用程序、社交网络和信息的方式。例如…

通过 WSL 2 在Windows 上挂载 Linux 磁盘

原文查看 曾为了传输或者共享不同系统的文件频繁地在 Windows 和 Linux 系统之间切换,效率过低,所以尝试通过 WSL 2 在Windows 上挂载 Linux 磁盘。 先决条件 需要在Windows 10 2004 及更高版本(Build 19041 及更高版本)或 Win…

Redis 缓存

安装 安装 Redis 下载: Releases tporadowski/redis (github.com) winr ----services.msc-----将redis 设置为手动(只是学习,如果经常用可以设置为自动) 安装 redis-py 库 pip install redis-py Redis 和 StrictRedis redis-py 提供 Redis 和 Str…

UDP通信 单播,广播,组播

UDP通信实现 #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); - 参数&#xff1a; struct sockaddr *src_addr, socklen_t *addrlen…

vue基础3

1.推荐好用的第三方框架 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 1.moment.js 2.dayjs 2.收集表达数据 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Document</title><…

MyBatis-Plus自动生成代码

目录 前言一. 什么是 MyBatis-Plus1. Mybatis-Plus 的特点2. Mybatis-Plus 结构二. MyBatis-Plus 自动生成步骤1. 数据库准备2. 环境准备(1) 创建一个空的 Spring Boot 工程(2) 导入pom依赖(3) 编辑application.yml文件(4) 在启动类加入 @MapperScan 注解3. 配置代码4. 运行三.…

数据库安全:MySQL安全配置,MySQL安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需要知道MySQL的安全基线标准和加固方式。 MySQL基线检查 1、更新…