從瀏覽器地址欄到服務(wù)器后端-初學(xué)者入門

輸入網(wǎng)址,點(diǎn)回車鍵之后

首先是要把域名轉(zhuǎn)換成IP地址,就是所謂的DNS解析

這個(gè)中間有一個(gè)步驟,開發(fā)人員經(jīng)常會操作的,修改系統(tǒng)的hosts文件
在本地開發(fā),使用自定域名可以很方便的模擬正式服務(wù)器環(huán)境對應(yīng)的域名。
hosts 文件 , 這篇先不做介紹,后續(xù)再說

如果本地修改了hosts ,那么找到的IP, 就是本地設(shè)置的IP地址

本地沒有配置過hosts,就會去找域名設(shè)置的ns記錄對應(yīng)的DNS服務(wù)器

這一步,多數(shù)開發(fā)人員都操作過,所以新手不妨買個(gè)域名設(shè)置一下看看,費(fèi)用不高

從DNS獲取對應(yīng)的IP

很多DNS服務(wù)都支持區(qū)域劃分,實(shí)現(xiàn)分流的效果,所以不同地區(qū)可能對應(yīng)不同的IP

找到了IP,也就找到了服務(wù)器。這一層,也有一些技術(shù)點(diǎn)

比如使用了lvs、nginx反向代理,很多服務(wù)器隱藏在這個(gè)后面,為大家提供服務(wù)。

便于理解,直只說單臺服務(wù)器。

根據(jù)IP,訪問到web服務(wù)器。

常見的web服務(wù)器nginxApachelighttpdtomcat

以 nginx + php + mysql + memcached 為基礎(chǔ)服務(wù),以這個(gè)博客為例來解釋一下后續(xù)的處理。

請求被nginx接管,nginx根據(jù)配置文件設(shè)置的root目錄(/web/blog/),查找對應(yīng)的文件。

如果訪問的是靜態(tài)頁面,由nginx把結(jié)果直接返回,處理結(jié)束。

這里有一個(gè)CDN,CDN的全稱是Content Delivery Network,“內(nèi)容分發(fā)網(wǎng)絡(luò)”。
通俗描述一下作用:把內(nèi)容在很多的服務(wù)器進(jìn)行緩存,訪問的時(shí)候,根據(jù)地域分布、負(fù)載均衡或其他調(diào)度規(guī)則,直接從最近、最快的服務(wù)器上,把訪問的數(shù)據(jù)返回。
靜態(tài)文件css、js大多都在cdn上。

如果訪問的是php文件,nginx把處理請求,轉(zhuǎn)交給php來處理,處理完成之后,再返回給nginx。

php處理數(shù)據(jù)的時(shí)候,用到最多的是數(shù)據(jù)庫,比如MySQL。經(jīng)過一系列的查詢,檢索出用戶需要的數(shù)據(jù),并返回結(jié)果。

為了加快數(shù)據(jù)的返回,這一層里也有一些常用措施。

1. 生成靜態(tài)頁面,或者把查詢的結(jié)果集保存到文件

2. 把查詢結(jié)果放入到memcached,減少M(fèi)ySQL查詢

PHP把結(jié)果數(shù)據(jù)組裝成瀏覽器可識別的html格式,作為頁面的數(shù)據(jù)載體。

這里可以關(guān)注一下,客戶端緩存。
1. Expires:+過期時(shí)間
2. Cache-control
3. Last-Modified/If-Modified-Since
4. ETag/If-None-Match

nginx把總的結(jié)果,返回給瀏覽器。





首發(fā)地址:從瀏覽器地址欄到服務(wù)器后端-初學(xué)者入門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容