web服务器通信原理

web服务器通信原理

C/S、B/S架构

C/S全称Client/Server

客户/服务器架构,常见的是一些客户端应用,比如:王者荣耀、吃鸡、穿越火线、魔兽世界等客户端游戏。或者一些即时通讯类软件,比如:QQ、微信,当然网页版的不算。

特点:所有的操作都必须依赖于客户端,当服务器做出某些更改时,客户端必须进行版本更新,否则无法使用。怪不得王者荣耀要频繁更新,到这里就能理解了。

B/S全称Browser/Server

浏览器/服务器架构,常见的是网页游戏比如:4399、洛克王国、QQ农场等。

特点:不需要实时更新客户端,只需要刷新页面即可,但相对C/S无法携带积累的素材包。

image-20201130114825287

网页浏览流程

1、在浏览器键入一个域名如http://xiamoworld.xyz并按下回车。

2、浏览器向事先设置好的DNS服务器发送请求,查询该域名对应的IP地址后返回给浏览器。

3、浏览器接收到IP地址后,向对应的服务器发起HTTP请求。

4、服务器收到请求并分析,从中提取并处理有用信息,处理完毕后返回一个HTTP响应给浏览器。

5、浏览器收到请求后,从中提取状态码、协议编码、正文(一般是HTML)等有效信息,然后翻译成直观的图形化界面。

http基本原理传送门

image-20201130130631902

常见的web服务器容器

IIS(Windows)

Apache(全平台)

Nginx(全平台)

负责接收HTTP请求,发送HTTP响应,其中IIS和Apache的动态数据处理能力较强, Nginx的并发处理能力较强。在企业中,常常将IIS和Nginx或Apache和Nginx混合使用以提高使用性能。

还有一种叫应用(java)服务器Tomcat

Apache与Tomcat的区别:

  1. Apache是web服务器,baiTomcat是应用(java)服务器,它只du是一个servlet容器,是Apache的扩展。
  2. Apache和Tomcat都可以做为独立的web服务器来运dao行,但是Apache不能解释java程序(jsp,serverlet)。
  3. Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)
  4. 两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等等。
  5. Apache和Tomcat是独立的,在通一台服务器上可以集成。

常见服务器系统

Linux (RedHat[收费],CentOS, Debian, Ubuntu)

Windows Server

macOS Server

以上是部署在服务器上的三种操作系统,其中Windows Server的使用量最大,特点在于操作方便、维护方便,出了问题可以叫微软的工程师修复。Linux使用量次之,特点在于是开源系统,出现问题可以找出其问题原因并加以修复,但操作难度比较大所以使用的企业较少,除非对性能等有特殊要求。macOS使用量最小。

常见的服务器脚本

Asp、Aspx(Windows)

PHP(Windows, Linux, macOS)

JSP(Windows, Linux, macOS)

python(Windows, Linux, macOS)

image-20201130164149681

在整个web通信过程中,上面提到的web容器只是起到了接收和发送数据的功能,而无法实现像登录、注册、交易等动态功能,这是就需要服务器web脚本或web服务器程序这种东西了。当web容器接收到请求数据后先判断是否为静态数据,如果是静态数据则直接返回静态数据,否则将数据转发到web脚本进行动态处理,处理完毕后生成静态资源传给web容器,web容器再将资源传送给浏览器显示。

静态资源:比如html、图片、视频等等。

动态资源:需要计算的动态数据,比如用户名和密码的配对、上传文件、登录帐号、发送弹幕等等。

比如这样一个过程,当你登录某个网站,输入用户名和密码后点击提交,这是浏览器将请求发送给浏览器,浏览器发现这是一个登录操作(动态操作),进而将数据转发给web脚本,web脚本进行密码比对,如果成功则向web容器返回登录后的静态页面,如果失败则返登录失败的静态页面,再由web容器将静态页面返回给浏览器呈现出来。

image-20201130170045823

上图为服务器脚本的应用范围,其中PHP、JSP、Python为全平台脚本语言,而ASP、ASPX只适用Windows Server上,是Windows的专有脚本。PHP需要PHP环境,JSP需要Java和Tomcat环境,python需要python环境。

猜你喜欢

转载自blog.csdn.net/qq_43665434/article/details/110394024