HTTP(Hypertext Transfer Protocol)超文本傳輸協議,詳細的規定了萬維網服務器和客戶端之間傳輸數據的通信規則。php
HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。 html
瀏覽器連上服務器後,向服務器請求某個web資源,稱之爲瀏覽器向服務器發送了一個HTTP請求。web
一個完整的HTTP請求包括以下內容:一個請求行、若干消息頭,以及實體內容。其中一些消息頭和實體內容都是可選的。瀏覽器
以test.php爲例:安全
<?php echo '123';
請求行的細節主要體如今請求方式:GET和POST。除了GET和POST以外,還有HEAD、OPTIONS、DELETE、TRACE、PUT,可是使用到的基本就是GET和POST。服務器
GET和POST有哪些區別?post
消息頭主要是瀏覽器在請求服務器中,攜帶的瀏覽器信息。ui
那麼服務器如何接收瀏覽器傳遞過來的瀏覽器的消息呢?code
經過$_SREVER這個變量接收,瀏覽器傳遞的消息頭。htm
重點介紹一些經常使用的消息頭($_SERVER變量裏的鍵值):
HTTP_REFERER,用來得到該請求是從哪一個頁面過來的
SERVER_ADDR,服務器的IP地址,::1表示本地服務器
REMOTE_ADDR,請求我這臺服務器的客戶端的ip地址
DOCUMENT_ROOT,服務器文檔的跟目錄
SCRIPT_NAME,請求的腳本(文件)名稱
REQUEST_TIME,請求的時間
<?php $remote = $_SERVER['REMOTE_ADDR']; $banned = '192.168.1'; if(strpos($remote, $banned) !== false){ // 說明找到了要禁止的網段 echo '你已經列入訪問的黑名單,沒法訪問'; exit(); } echo '歡迎訪問';
所謂的響應,就是服務器給瀏覽器迴應的內容。
一個完整的HTTP響應包括3個部分:狀態行、消息頭、實體內容。
HTTP響應的狀態碼有不少,可是最多見的就是以下幾個,須要重點掌握:
200:請求成功
404:not found,未找到這個資源
302:表示重定向
304:Not Modified,未修改
403:Forbidden,禁止訪問
500:服務器內部錯誤