服务器的原理,服务器原理
前言
接下來給大家分享一下服務(wù)器的原理。
之前是lamp(Linux、Apache、MySQL、PHP)架構(gòu)的網(wǎng)站,現(xiàn)如今已經(jīng)改為了lnmp(Linux、Nginx、MySQL、PHP),將Apache換成了Nginx,為什么呢?都是Nginx性能高,為什么性能高?因為IO復(fù)用,那么IO復(fù)用是什么?除了IO復(fù)用之外還有其他的原因嗎?在了解這些原因之前,我們先去簡單的探究一下服務(wù)器的原理是什么?
服務(wù)器的本質(zhì)
說起服務(wù)器,我們經(jīng)常見到的就是HTTP服務(wù)器,HTTP服務(wù)器可以處理用戶的HTTP請求,除此之外,還有TCP服務(wù)器。
在此先解釋TCP服務(wù)器,TCP服務(wù)的本質(zhì)就是套接字,TCP是傳輸層的是可靠的網(wǎng)絡(luò)協(xié)議,本質(zhì)上就是我們所說的Socket,即套接字。客戶端在與服務(wù)端交互之前先建立連接,再收發(fā)數(shù)據(jù)。如下圖:
HTTP服務(wù)器呢?
我們知道HTTP是處于網(wǎng)絡(luò)的應(yīng)用層,HTTP是在傳輸層的基礎(chǔ)上加一些數(shù)據(jù)頭,構(gòu)成了具備了一定自我解釋能力的協(xié)議。更進(jìn)一步說,TCP客戶端在數(shù)據(jù)的前面加上HTTP協(xié)議所要求的數(shù)據(jù)頭。那么HTTP服務(wù)器的本質(zhì)是在TCP服務(wù)器的基礎(chǔ)上做了一層包裝。
假設(shè)有一個TCP服務(wù)器在運行著監(jiān)聽者80端口,那么我們用瀏覽器請求這個TCP服務(wù)器,我們請求的URL為http://127.0.0.1/index.php。
如下圖:
在TCP服務(wù)端收到的消息頭的第一行為:
get ?/index.php ?http/1.1復(fù)制代碼
請求的方式get,訪問index.php文件,協(xié)議的版本是http協(xié)議1.1版本。
接下來TCP服務(wù)端就執(zhí)行事先配置好的網(wǎng)站根目錄底下的index.php(網(wǎng)站根目錄類似于Apache配置文件DocumentRoot配置項,Nginx配置文件中的root選項),TCP服務(wù)器就是新開啟一個進(jìn)程去執(zhí)行index.php文件,將執(zhí)行的結(jié)果輸出到客戶端,也就是我們的瀏覽器。
如果index.php文件如下
那么瀏覽器將要輸出"hello world"。
小編說:一個多月沒和大家見面了,接下來要分幾個方向跟大家去分享這個月自己的一些思考,歡迎朋友們和我交流。小編致力于用通俗易懂的語言,一步一步的為大家拆解難懂的技術(shù)點。
總結(jié)
以上是生活随笔為你收集整理的服务器的原理,服务器原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 场景应用:100亿的数据你怎么排序
- 下一篇: 拉扎维第七章笔记