马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、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 )⽀持访问速率、并发限制
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |