### 一、HTTP協議
超文本傳輸協議 (HTTP-Hypertext transfer protocol) 是一種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議。是目前互聯網上應用最為廣泛的網絡協議,是工作在tcp/ip協議基礎上的,所有的www文件都必須遵循這個標準,設計HTTP的目的就是為了提供一種發布和接受HTML頁面的方法
1、通過HTTPWATCH產檢來抓取HTTP的請求內容
2、HTTP1.0是短連接 HTTP1.1長連接
? ?所謂的短連接就是數據發送出去就斷開連接,這樣每次發送都需要再連接一次。目前使用1.1版本,長連接
3、HTTP/IP協議的一個應用層協議,HTTP也是我們WEB開發的基礎。
**HTTP請求部分基本結構:**
**下面是一個簡單的關于HTTP結構的介紹,具體的介紹吧可以參照HTTP 協議詳解,這個可以去網絡上搜索的**
****
**那么我們如何知道客戶端給服務器發送的的數據,PHP提供給我們一個預定義變量_SERVER數組來保存**
~~~
獲得服務器的內容。具體可以查看PHP手冊。
~~~
**看下面的代碼:**
~~~
<?php
/*print_r($_SERVER);//沒有格式使用下面的方式打印
//獲得客戶端內容
foreach ($_SERVER as $key=>$val){
echo "$key=$val <br/>";
}
*/
//那么我們如何獲得客戶端的IP地址
//echo "服務器的IP地址是:".$_SERVER["REMOTE_ADDR"];
//服務器可以通過下面的方法來拒絕客戶端的請求
if ($_SERVER["REMOTE_ADDR"] == "192.168.1.101"){
//頁面跳轉,重定向
header("Location: http://blog.csdn.net/jsh13417");
}
?>
~~~
在服務器端,我們可以通過預定義變量$_SERVER獲得客戶端發送的內容,下面列舉一些常用內容
HTTP_HOST:當前請求的 Host: 頭信息的內容。
REMOTE_ADDR :正在瀏覽當前頁面用戶的 IP 地址DOCUMENT_ROOT:可以獲取服務器的主目錄
REQUEST_URI :可以回去請求資源名
###HTTP請求主要方式:
get post 區別:
1、安全性:
get請求的內容是放在地址欄中的,而POST的內容是放在協議體中的
2、從提交的數據的大小看
http 協議本身并沒有限制數據的大小。瀏覽器再對get post請求數據做限制,get請求數據 2k+35,而對post請求沒有限制,他是在消息體內
這樣,如何傳輸的數據量比較大的話,需要使用get請求。
3、get請求可以更好的添加到收藏夾
### 防盜鏈技術
下面是在服務器下面保存的2個文件
~~~
<?php
//防止防盜鏈
if(isset($_SERVER["HTTP_REFERER"])){
//取出來,判斷是不是以
}
echo '<a href="import.php">jsh賬戶信息查詢</a><br/>';
?>
~~~
~~~
<?php
//防止防盜鏈
if(isset($_SERVER["HTTP_REFERER"])){
//取出來,判斷是不是https://192.168.1.110/myphp/http開偷,如果是則是正確否則錯誤
if(strpos($_SERVER["HTTP_REFERER"],"https://192.168.1.110/myphp/http") == 0){
echo "jsh的賬戶名:5789123085<bt/>密碼:123456<br/>";
}
} else{ //則不是,需要跳轉到百度頁面
header("Location: http://www.baidu.com/");
}
?>
~~~
現在是在window下面寫個文件,直接連接上面的文件
~~~
<a href="https://192.168.1.110/myphp/http/import.php">查看用戶屬性<a/>
~~~
這時候會被跳轉到百度頁面!
### HTTP響應:
基本結構看下圖:

狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
5xx:服務器端錯誤--服務器未能實現合法的請求
常見狀態代碼、狀態描述、說明:
200OK //客戶端請求成功
400BadRequest //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報
//頭域一起使用
403Forbidden //服務器收到請求,但是拒絕提供服務
404NotFound //請求資源不存在,eg:輸入了錯誤的URL
500InternalServerError//服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間后,
//可能恢復正常
eg:HTTP/1.1200OK(CRLF)


參考資料:
[http://www.blogjava.net/joan/articles/247271.html](http://www.blogjava.net/joan/articles/247271.html)?及傳智博客視頻
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP開發環境配置說明
- PHP基礎數據類型及運算符介紹
- 走進PHP函數
- 走進位運算
- 走進數組及相關數組函數
- 面向對象的編程(類與對象)
- 面向對象的編程(類成員方法用法)
- 構造方法,析構方法
- static,global用法
- 靜態方法
- 面向對象的編程方法
- 接口方法
- 接口VS繼承、final、const
- 錯誤及異常處理機制、錯誤日志
- HTTP協議深度剖析
- 文件下載
- PHP數據庫編程
- 數據庫編程(2)
- 超全局變量
- Zend studio 開發環境入門
- 雇員管理系統(1)
- 雇員管理系統(2)
- 會話技術(cookie session)
- 會話技術 session場景使用介紹!
- PHP.in中session和cookie的配置說明
- PHP文件編程
- 報表及繪圖技術
- 報表及繪圖技術(jpgraph庫使用,Linux安裝及配置說明)
- XML基本語法及DTD介紹
- XML編程(Dom技術)
- XML編程(Xpath技術,simpleXml技術)基礎入門
- 網上支付平臺PHP版本
- javascript基礎入門