相關(guān)知識
WEB 應(yīng)用程序運(yùn)作方式簡介
WEB 的本意是蜘蛛網(wǎng)和網(wǎng),在網(wǎng)頁設(shè)計中稱為網(wǎng)頁?,F(xiàn)廣泛譯作網(wǎng)絡(luò)、互聯(lián)網(wǎng)等技術(shù)領(lǐng)域。日常生活中用戶使用瀏覽器請求一個 URL ,這個 URL 標(biāo)識著某個特定的服務(wù)器的特定資源,服務(wù)器接收到請求之后,服務(wù)器就把生成的 HTML 網(wǎng)頁通過 HTTP 協(xié)議發(fā)送給瀏覽器。
早期的 WEB 頁面內(nèi)容簡單,單純使用 HTML 即可滿足用戶的需求,此時網(wǎng)站的主要內(nèi)容是靜態(tài)的。
隨著用戶需求的不斷增加,不同的用戶往往有著不同的需求,動態(tài)頁面應(yīng)運(yùn)而生,動態(tài)頁面有如下三個特點(diǎn):
-
“交互性”,即網(wǎng)頁會根據(jù)用戶的要求和選擇而動態(tài)改變和響應(yīng),將瀏覽器作為客戶端界面,這將是今后 WEB 發(fā)展的大勢所趨.
-
“自動更新”,即無須手動地更新 HTML 文檔,便會自動生成新的頁面,可以大大節(jié)省工作量.
-
“因時因人而變”,即當(dāng)不同的時間,不同的人訪問同一網(wǎng)址時會產(chǎn)生不同的頁面。
動態(tài)頁面的工作原理如下:
注:第三步根據(jù)腳本的類型使用對應(yīng)的解析器進(jìn)行解析并執(zhí)行,例如 index.php 交給 php。
什么是 LAMP
LAMP 是一個開源的 WEB 開發(fā)平臺,使用Linux作為操作系統(tǒng),Apache 作為 WEB 服務(wù)器,MySQL 作為關(guān)系數(shù)據(jù)庫管理系統(tǒng),PHP 作為面向?qū)ο蟮哪_本語言。一般情況下,Apache監(jiān)聽80端口,接受來自公共互聯(lián)網(wǎng)的用戶請求。
Apache 由開放社區(qū)開發(fā)和維護(hù),是一個成熟的、功能豐富的服務(wù)器
MySQL 是一個開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),用于存儲應(yīng)用程序數(shù)據(jù)。
PHP:編程語言。PHP 開源腳本語言與 Apache 配合使用,可幫助創(chuàng)建動態(tài)網(wǎng)頁。例如從數(shù)據(jù)庫中提取數(shù)據(jù),只需將 PHP 代碼放入想要動態(tài)化的頁面部分。
四者的架構(gòu)圖如下所示:
來自公共互聯(lián)網(wǎng)的請求首先被apache接收,apache 根據(jù) url 所請求的資源類型(靜態(tài)資源如html、json、png、jpg 等;腳本如 php、asp 等)進(jìn)行調(diào)度,如果是靜態(tài)文件,則直接訪問對應(yīng)的文件系統(tǒng),將其內(nèi)容返回,若為腳本如 index.php 則會交給對應(yīng)的腳本解釋器,index.php 對應(yīng) php 解釋器,php 在執(zhí)行 index.php 的代碼后,得到的結(jié)果再返回給 apache,apache 將得到的內(nèi)容再返回給用戶。當(dāng) php腳本中存在操作數(shù)據(jù)庫的代碼,則會如圖所示多出php訪問數(shù)據(jù)庫的流程。其他流程不變。
題目
什么是 LNMP
LNMP與 LAMP 的區(qū)別在與使用 Nginx 作為 WEB 服務(wù)器。
Nginx 是一款小巧且高效的 Linux 下 WEB 服務(wù)器軟件。相比 Apache,用 Nginx 作為 WEB 服務(wù)器:使用資源更少,支持更多并發(fā)連接,效率更高。
題目
什么是 WNMP
由于平臺有四層, LAMP 有時也稱為 LAMP 堆棧。堆棧可以構(gòu)建在不同的操作系統(tǒng)上。將這些軟件用于 Windows 操作系統(tǒng)時,就稱為 WAMP;使用 Macintosh 系統(tǒng)時稱為 MAMP,使用 Solaris 系統(tǒng)時稱為 SAMP。
W即windows,N即nignx,M即mysql,P即php
題目
補(bǔ)充:HTTP 協(xié)議
HTTP 是在網(wǎng)絡(luò)上傳輸 HTML 的協(xié)議,用于瀏覽器和服務(wù)器的通信。
HTTP 請求包含 request 和 response 兩個部分,分別為瀏覽器請求服務(wù)器的請求報文與服務(wù)器響應(yīng)請求的響應(yīng)報文。
請求報文例如:
GET / HTTP/1.1
Host: www.sina.com.cn
User-Agent: Mozilla/5.0 xxx
Accept: */*
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8
第一行表示使用GET請求方式獲取路徑為/的資源,并使用HTTP/1.1協(xié)議,從第二行開始,每行都是以Header: Value形式表示的HTTP頭,
比較常用的 HTTP Header 包括:
Host: 表示請求的主機(jī)名,因為一個服務(wù)器上可能運(yùn)行著多個網(wǎng)站,因此,Host 表示瀏覽器正在請求的域名;
User-Agent: 標(biāo)識客戶端本身,例如 Chrome 瀏覽器的標(biāo)識類似Mozilla/5.0 … Chrome/79,IE瀏覽器的標(biāo)識類似Mozilla/5.0 (Windows NT …) like Gecko;
Accept:表示瀏覽器能接收的資源類型,如text/*,image/或者/*表示所有;
Accept-Language:表示瀏覽器偏好的語言,服務(wù)器可以據(jù)此返回不同語言的網(wǎng)頁;
Accept-Encoding:表示瀏覽器可以支持的壓縮類型,例如gzip, deflate, br。
HTTP Header 每行都以\r\n結(jié)束,如果遇到兩個連續(xù)的\r\n,那么后面就是 HTTP Body。HTTP Body 通常出現(xiàn)在 POST 請求。
\r就是回到行首,\n就是到下一行的
‘\r’是回車,’\n’是換行,前者使光標(biāo)到行首,后者使光標(biāo)下移一格。通常用的Enter是兩個加起來
POST請求例如:
POST / HTTP/1.1
Host: qh.qt.zdbc.baicuoa.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: UM_distinctid=176bb981a6a102-0958497cfbd0fb-4c3f207e-1fa400-176bb981a6c22d; CNZZDATA1277924430=1953373006-1609462947-%7C1624499868; CNZZDATA1277924487=1429083096-1609634137-%7C1624499327
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
data
響應(yīng)報文如下:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 21932
Content-Encoding: gzip
Cache-Control: max-age=300
<html>...網(wǎng)頁數(shù)據(jù)...
服務(wù)器響應(yīng)的第一行為版本號+空格+數(shù)字+空格+文本,其中數(shù)字2xx表示成功,3xx表示重定向,4xx表示客戶端引發(fā)的錯誤,5xx表示服務(wù)器端引發(fā)的錯誤。
常見的響應(yīng)代碼有:
200 OK:表示成功;
301 Moved Permanently:表示該 URL 已經(jīng)永久重定向;
302 Found:表示該 URL 需要臨時重定向;
304 Not Modified:表示該資源沒有修改,客戶端可以使用本地緩存的版本;
400 Bad Request:表示客戶端發(fā)送了一個錯誤的請求,例如參數(shù)無效;
401 Unauthorized:表示客戶端因為身份未驗證而不允許訪問該 URL;
403 Forbidden:表示服務(wù)器因為權(quán)限問題拒絕了客戶端的請求;
404 Not Found:表示客戶端請求了一個不存在的資源;
500 Internal Server Error:表示服務(wù)器處理時內(nèi)部出錯,例如因為無法連接數(shù)據(jù)庫;
503 Service Unavailable:表示服務(wù)器此刻暫時無法處理請求。
從第二行開始,服務(wù)器每一行均返回一個 HTTP 頭。服務(wù)器經(jīng)常返回的 HTTP Header 包括:
Content-Type:表示該響應(yīng)內(nèi)容的類型,例如text/html,image/jpeg;
Content-Length:表示該響應(yīng)內(nèi)容的長度(字節(jié)數(shù));
Content-Encoding:表示該響應(yīng)壓縮算法,例如gzip;
Cache-Control:指示客戶端應(yīng)如何緩存,例如max-age=300表示可以最多緩存300秒。文章來源:http://www.zghlxwxcb.cn/news/detail-800653.html
題目
文章來源地址http://www.zghlxwxcb.cn/news/detail-800653.html
到了這里,關(guān)于數(shù)據(jù)庫安全-第一章 Mysql 安全基礎(chǔ)-【web 環(huán)境搭建——LAMP-1】-LAMP & LNMP 簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!