服务器的原理,服务器原理
前言
接下來給大家分享一下服務器的原理。
之前是lamp(Linux、Apache、MySQL、PHP)架構的網站,現如今已經改為了lnmp(Linux、Nginx、MySQL、PHP),將Apache換成了Nginx,為什么呢?都是Nginx性能高,為什么性能高?因為IO復用,那么IO復用是什么?除了IO復用之外還有其他的原因嗎?在了解這些原因之前,我們先去簡單的探究一下服務器的原理是什么?
服務器的本質
說起服務器,我們經常見到的就是HTTP服務器,HTTP服務器可以處理用戶的HTTP請求,除此之外,還有TCP服務器。
在此先解釋TCP服務器,TCP服務的本質就是套接字,TCP是傳輸層的是可靠的網絡協議,本質上就是我們所說的Socket,即套接字。客戶端在與服務端交互之前先建立連接,再收發數據。如下圖:
HTTP服務器呢?
我們知道HTTP是處于網絡的應用層,HTTP是在傳輸層的基礎上加一些數據頭,構成了具備了一定自我解釋能力的協議。更進一步說,TCP客戶端在數據的前面加上HTTP協議所要求的數據頭。那么HTTP服務器的本質是在TCP服務器的基礎上做了一層包裝。
假設有一個TCP服務器在運行著監聽者80端口,那么我們用瀏覽器請求這個TCP服務器,我們請求的URL為http://127.0.0.1/index.php。
如下圖:
在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"。
小編說:一個多月沒和大家見面了,接下來要分幾個方向跟大家去分享這個月自己的一些思考,歡迎朋友們和我交流。小編致力于用通俗易懂的語言,一步一步的為大家拆解難懂的技術點。
總結
以上是生活随笔為你收集整理的服务器的原理,服务器原理的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 场景应用:100亿的数据你怎么排序
 - 下一篇: 拉扎维第七章笔记