php 面試考點總結 高併發和大流量解決方案考點

2022-07-19 02:00:14 字數 1918 閱讀 5202

盜鏈概念

盜鏈是指在自己的頁面上展示一些並不在自己伺服器的內容

防盜煉工作原理

通過referer或者簽名,**可以檢測目標網頁訪問的**頁,一旦檢測到**頁不是本站即進行阻止或者返回指定頁面

解決方案1

referer

nginx 模組ngx_http_referer_module用於阻擋**非法的網域名稱請求

location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$

}

缺點:可以進行偽裝referer

解決方案2

使用第三方httpaccesskeymodule模組實現nginx防盜煉

location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$

缺點:要在每個資源後面加個簽名為什麼要減少http請求次數

httpl連線產生的開銷

解決方案1

地圖使用標籤

解決方案2

css精靈

通過指定css的backgroud-image和backgroud-position來顯示元素

解決方案3

合併指令碼和樣式表

使用外部js和css檔案引用方式

解決方案4

使用base64編碼減少頁面的請求數

使用外部js和css檔案引用方式http快取機制

1.200 from cache: 直接從本地快取中獲取響應,最快速,最省流量,因為根本沒有向伺服器傳送請求

2.304 not modify:協商快取,瀏覽器在本地沒有命中情況下請求頭髮送一定的校驗資料到服務端,如果服務端資料沒有改變瀏覽器從本地快取響應,返回304,快速,傳送的資料小,只返回一些基本的響應頭資訊,資料量很小,不發生實際響應體

3.200 ok:以上兩種快取全都失敗,伺服器返回完整響應,沒有用到快取,相對最慢。

nginx配置

location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$

前端**和資源的壓縮

js**壓縮常用工具:uglifyjs, yui compressor, closure compiler

css**壓縮常用工具:yui compressor, css compressor

html**壓縮常用工具:htmlcompressor

壓縮常用工具:tinypng, jpegmini, imageoptim

gzip壓縮

location ~ .*\.(gif|jpg|png|swf|bmp|jpeg)$

什麼是cdn,全稱:content delivery network 內容分發網路

使用cdn的優勢獨立的必要性:

1.分擔web伺服器的i/o負載,將耗費資源的服務分離出來,提高伺服器的效能和穩定性,

2.能夠專門對伺服器進行優化,為服務設定有針對性的快取方案,減少頻寬成本,提高訪問速度,

採用獨立網域名稱:

1.同一網域名稱下瀏覽器的併發連線數有限制,突破瀏覽器的連線數限制(同一網域名稱下瀏覽器併發連線數2-6個)

2.由於cookie的原因,對快取不利,大部分web cache 都只能快取不帶cookie的請求,導致每次的請求都不能命中cache

3.如何進行上傳和同步,nfs共享方式,利用ftp同步程序,執行緒,協程,同步阻塞,非同步非阻塞,

php併發程式設計實踐:swoole 訊息佇列 介面的併發請求(curl_multi_init)1 為什麼的要使用資料庫快取

極大地j解決資料庫伺服器的壓力

提高應用資料的響應速度

常見的快取形式:記憶體快取,檔案快取

是為了讓客戶端很少,甚至不訪問資料庫伺服器進行資料的查詢,高併發下,能最大程度降低對資料庫伺服器的壓力

2 使用redis,memcache快取查詢資料

php高併發,大流量

一般使用lvs php集群 1000臺 就算日均80億次請求,每秒有10萬併發,那分到每台機器的請求只有100個。只要你的php程式不是太差,100qps總沒問題吧?而真正的瓶頸在於資料庫和儲存系統,資料的一致性,可擴充套件性,可用性很難保證。所以需要根據具體的業務場景再做橫向和縱向的分庫分表。再輔...

PHP面試考點 4 流程控制

4.流程控制 請列出3中php迴圈陣列的方法,說出各自的區別 for foreach while.list each 組合 for只能遍歷索引陣列,其他兩個能遍歷索引陣列和關聯陣列 foreach能重置陣列的指標 while.list.each 不能重置指標 php分支考點 if.elseif只能有...

PHP面試考點 7 檔案操作

7.檔案操作 fopen 函式 用來開啟乙個檔案,開啟時需指定開啟模式 開啟模式 r 唯讀 r 讀寫 w 清空寫 w 建立寫 a 追加寫 a 追加建立寫 x 建立,如果檔案存在則報錯 x 建立讀寫 寫函式 fwrite 讀函式 fread 關閉 fclose 名稱相關 basename 檔名 dir...