web工作原理
HTTP協(xié)議
HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是因特網(wǎng)上應用最為廣泛的一種網(wǎng)絡傳輸協(xié)議,所有的WWW文件都必須遵守這個標準。
HTTP 請求
HTTP 請求可以使用多種請求方法。與PHP相關的最常用請求方式有兩種:
GET -- 請求指定的頁面信息,并返回實體主體。
POST -- 向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。 POST 請求可能會導致新的資源的建立或已有資源的修改。

首先第一步,用戶在瀏覽器中輸入網(wǎng)址,如“www. baidu.com”",瀏覽器會去請求DNS服務器,DNS是一種組織成 域?qū)哟谓Y(jié)構(gòu) 的計算機和網(wǎng)絡服務命名系統(tǒng),應用于TCP IP網(wǎng)絡,從事將主機名或域名轉(zhuǎn)換為實際IP地址的工作。將“www.baidu.com"翻譯成百度對應的IP地址。
然后第二步,DNS服務器將翻譯過來的IP地址傳遞給瀏覽器。
第三步,瀏覽器通過IP地址找到IP對應的Web服務器(通常是Apache或者是Nginx),建立TCP連接,并向服務器發(fā)送HTTP Request (請求)包。
第四步, Web服務器發(fā)現(xiàn)用戶訪問了后綴為“php”的文件,如index.php文件,那么服務器就會訪問PHP解析引擎。
第五步 ,PHP在解析時, 發(fā)現(xiàn)需要使用數(shù)據(jù)庫。于是,連接數(shù)據(jù)庫,訪問數(shù)據(jù)庫服務器(可能是MySQL、SQL Server、Oracle 等)。
第六步,數(shù)據(jù)庫根據(jù)查詢條件,查找數(shù)據(jù),并將數(shù)據(jù)返回給PHP引擎。
第七步,PHP引擎拼接數(shù)據(jù),解析成HTML, 返回給Web服務器。
第八步, Web服務器將HTML文件返回給瀏覽器,瀏覽器開始解析HTML文件,此時, 用戶在瀏覽器中就能看到訪問的網(wǎng)站內(nèi)容。
認識HTML表單
為了實現(xiàn)瀏覽器和服務器的互動,可以使用HTML表單搜集不同類型的用戶輸入,將輸入的內(nèi)容從客戶端的瀏覽器傳送到服務器端,經(jīng)過服務器上的PHP程序進行處理后,再將用戶所需要的信息傳遞回客戶端的瀏覽器上,從而獲得用戶信息,可使用HTML表單的情景有很多,例如用戶注冊、登錄、個人中心設置等頁面。
在HTML中,使用<form>標簽,即可創(chuàng)建個表單。 表單結(jié)構(gòu)如下:
<form method="post" action="xxx">
......表單元素
</form>
其中表單元素input格式
<input type="text" name="fname" value="text" />
type -- 指定元素的類型。text、password、checkbox、radio、submit、reset、file和 button等,默認為 text。
name -- 指定表單元素的名稱。
value -- 元素的初始值。
舉個栗子:
<html>
<body>
<form method="post" action="test.php">
用戶名:<input type="text" name="name" />
密碼:<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
</body>
</html>
PHP獲取表單數(shù)據(jù)
在PHP中提供了兩種與Web頁面交互的方法,一種是通過Web表單提交數(shù)據(jù)即POST方式,另一種是通過URL參數(shù)傳遞即GET方式。
1.獲取POST方式提交的表單數(shù)據(jù)
語法:$_POST[] -- 方括號內(nèi)是對應表單元素的name屬性的值
舉個栗子:這里使用上一個栗子中的form表單。則新建一個test.php文件。
<?php
$name = $_POST['name']; //獲取接收的用戶名
$password = $_POST['password']; //獲取接收的密碼
echo '接收到的用戶名:'.$name.'<br>';
echo '接收到的密碼:'.$password.'<br>';
print_r($_POST); //直接$_POST代表接收的所有數(shù)據(jù)組成的數(shù)組
?>
2.獲取GET方式提交的表單數(shù)據(jù)
GET方式是<form>表單中metlod屬性的默認方法。使用GET方式提交的表單數(shù)據(jù)被附加到URL后,并作為URL的一部分發(fā)送到服務器端。在程序的開發(fā)過程中,由于GET方式提交的數(shù)據(jù)是附加到URL上發(fā)送的,因此,在URL的地址欄中將會顯示“URL+用戶傳遞的參數(shù)”。
http://url?name1=value1&name2=value2.....
舉個栗子:
<!DOCTYPE html>
<html lang="en">
<body>
<form action="#" method="get" >
用戶名:<input type="text" name="name" />
密碼:<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
</body>
</html>