一、對(duì)于php頁面完全無法訪問的情況
1、確認(rèn)是php的問題還是iis等服務(wù)器的問題
判斷方法,在目錄下放一個(gè)靜態(tài)文件,通過瀏覽器判斷這個(gè)靜態(tài)文件可否訪問。若可以訪問,即為php問題。
如果是IIS的問題,常見的有兩種情況,一個(gè)判斷的利器是telnet。
linux的telnet其實(shí)更加好用,因?yàn)槟J(rèn)是打開回顯的。而windows,則需要用 set localecho,否則看不到輸入的文字
1.1 防火墻禁止80端口
進(jìn)入telnet后,輸入指令,open 域名 80
如:open www.baidu.com 80
如果能連接上,會(huì)出現(xiàn)一個(gè)黑色屏幕,等待輸入
提示所謂的無法打開到主機(jī)的連接,在端口80失敗,則表示這個(gè)端口不可達(dá)。可能的原因有:DNS服務(wù)器沒有這個(gè)域名(用nslookup查),遠(yuǎn)程主機(jī)沒有開啟或禁止連接(用ping等命令查),以及這里說的,防火墻沒有打開80端口。

1.2 服務(wù)器上目標(biāo)目錄的權(quán)限設(shè)置不正確
這種情況下,一般會(huì)提示要求登錄的對(duì)話框,不至于顯示不出來頁面
1.3 其他問題
假設(shè)要訪問的主機(jī)是www.baidu.com ,那么,用如下命令查:
> telnet www.baidu.com 80
會(huì)出來一個(gè)黑屏幕,這個(gè)時(shí)候速度要快,因?yàn)榉?wù)器可能不會(huì)等你輸入,他期待的是一個(gè)迅速的輸入。(可以先在記事本里頭打好,然后粘貼進(jìn)去),直接telnet可能沒有l(wèi)ocalecho,可能需要盲打
指令例子,括號(hào)內(nèi)的字符不要輸入:
GET / HTTP/1.1 (回車)
Host: www.baidu.com (回車)
(回車)
注意,在host行后有兩個(gè)回車。
這個(gè)是用telnet模擬瀏覽器對(duì)目標(biāo)主機(jī)的請(qǐng)求。如圖:

注意,回復(fù)頭的內(nèi)容擁有非常豐富的信息,如200表示請(qǐng)求成功。500表示內(nèi)部服務(wù)器錯(cuò)誤等,具體信息可以看看相關(guān)文檔。
1.4 一點(diǎn)點(diǎn)背景知識(shí)
以上的步驟涉及到瀏覽器發(fā)起請(qǐng)求的過程,介紹下或許會(huì)有幫助:
1、 你在瀏覽器的地址欄輸入域名,并按下回車。
2、瀏覽器請(qǐng)求DNS服務(wù)器將域名轉(zhuǎn)換為IP地址――注意,這一步還和你的網(wǎng)頁服務(wù)器(IIS或者APACHE)沒有任何關(guān)系。
3、瀏覽器向你的網(wǎng)頁服務(wù)器請(qǐng)求連接――相當(dāng)于我們telnet 80端口。當(dāng)然, 如果你指定了端口號(hào),他就會(huì)連接你指定的端口。但是默認(rèn)端口是80,這個(gè)是rfc規(guī)定的http的端口,https端口是443,這個(gè)過程更加復(fù)雜,有密鑰交換和加解密的過程,因此沒辦法用這種方法做trouble shooting,建議在這個(gè)階段先搞定http的再說。
4、建立了一條連接,服務(wù)器等待瀏覽器發(fā)請(qǐng)求頭,瀏覽器發(fā)請(qǐng)求頭。請(qǐng)求頭以一個(gè)空行結(jié)束。
5、請(qǐng)求頭格式如下:
方法【空格】請(qǐng)求路徑(不包含域名,如/a.html或者/)【空格】協(xié)議
HOST:請(qǐng)求的域名
例如:
GET /index.php HTTP/1.1 (回車)
Host: www.baidu.com (回車)
(回車)
請(qǐng)求頭可能有其他信息,例如,提交的信息,不過對(duì)于我們而言,這個(gè)就夠了。
方法,常用的就是get和post,一般請(qǐng)求網(wǎng)頁用get,提交信息用post。
6、服務(wù)器處理并返回?cái)?shù)據(jù),包括頭和網(wǎng)頁體。
HTTP/1.1 200 OK
這行開頭,包括了協(xié)議,以及錯(cuò)誤代碼(或成功代碼),錯(cuò)誤代碼解釋。
對(duì)于瀏覽器而言,可能會(huì)有不少信息有用,但對(duì)于我們而言,知道代碼和錯(cuò)誤代碼解釋就很有必要了。
新聞熱點(diǎn)
疑難解答
圖片精選