服务器的原理,服务器原理

前言

接下来给大家分享一下服务器的原理。

之前是lamp(Linux、Apache、MySQL、PHP)架构的网站,现如今已经改为了lnmp(Linux、Nginx、MySQL、PHP),将Apache换成了Nginx,为什么呢?都是Nginx性能高,为什么性能高?因为IO复用,那么IO复用是什么?除了IO复用之外还有其他的原因吗?在了解这些原因之前,我们先去简单的探究一下服务器的原理是什么?

服务器的本质

说起服务器,我们经常见到的就是HTTP服务器,HTTP服务器可以处理用户的HTTP请求,除此之外,还有TCP服务器。

在此先解释TCP服务器,TCP服务的本质就是套接字,TCP是传输层的是可靠的网络协议,本质上就是我们所说的Socket,即套接字。客户端在与服务端交互之前先建立连接,再收发数据。如下图:

9fda9e6e935765c618ca280acfd20711.png

HTTP服务器呢?

我们知道HTTP是处于网络的应用层,HTTP是在传输层的基础上加一些数据头,构成了具备了一定自我解释能力的协议。更进一步说,TCP客户端在数据的前面加上HTTP协议所要求的数据头。那么HTTP服务器的本质是在TCP服务器的基础上做了一层包装。

假设有一个TCP服务器在运行着监听者80端口,那么我们用浏览器请求这个TCP服务器,我们请求的URL为http://127.0.0.1/index.php。

如下图:

ce8e2a39805e5080caef8edc7d78b0d0.png

在TCP服务端收到的消息头的第一行为:

get  /index.php  http/1.1复制代码

请求的方式get,访问index.php文件,协议的版本是http协议1.1版本。

接下来TCP服务端就执行事先配置好的网站根目录底下的index.php(网站根目录类似于Apache配置文件DocumentRoot配置项,Nginx配置文件中的root选项),TCP服务器就是新开启一个进程去执行index.php文件,将执行的结果输出到客户端,也就是我们的浏览器。

如果index.php文件如下

那么浏览器将要输出"hello world"。

小编说:一个多月没和大家见面了,接下来要分几个方向跟大家去分享这个月自己的一些思考,欢迎朋友们和我交流。小编致力于用通俗易懂的语言,一步一步的为大家拆解难懂的技术点。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值