http協議(1)

學習資源:燕十八的http課程(公開形式的資源,請自行查找)  一二節

我的筆記:

Http筆記 - 一些重點


------------概述:-----------------
原始狀態 客戶端 和 服務器 沒有鏈接
客戶端 建立連接 發送請求
服務端 回沿連接 響應請求
斷開連接 


------------觀察--------------------------
打開chrome 打到network 下的 header選項卡
RequestHeader 請求頭
ResponseHeader響應頭


-----Http請求信息和響應信息-格式------
請求:
①請求行
  |-----請求方法 GET POST PUSH DELETE TRACE OPTIONS
  |-----請求路徑 
  |-----所用協議 
②請求頭信息
③請求主體信息


-------telnet---GET測試----------------
瀏覽器可以發送HTTP協議,那瀏覽器一定要瀏覽器來發送麼?
answer : no . it only is a 協議 ,just to send


打開wamp,準備好服務器環境
打開cmd,實驗telnet,測試本機ip = 121.249.13.202
telnet 本機ip 端口號【默認80】 回車
ctrl+] 進入回顯 再回車
輸入
GET /test.php HTTP/1.1
Host : localhost
連續倆次回車,即可以得到主體信息


GET / HTTP/1.1 請求行
Host : localhost 請求頭部信息
【頭信息結束之後有一個空行,以和主體信息做區分】


--------POST請求方式--------------------
POST /test.php HTTP/1.1 
Host:localhost     
Content-type:application/x-www-form-urlencoded
Content-length:30


username=zhangsan&age=28
--------個人理解(1)---------------------
個人理解:瀏覽器的實質也是如此,通過http協議將主體消息發送給服務器,服務器文件處理數據,然後響應,響應過程中通過響應行聲明協議、狀態碼、狀態文字,然後返回響應頭信息,之後返回響應的主題信息


---------------響應--------------
響應行(協議 狀態碼 狀態文字)
響應頭信息(格斯爲key:value)
空行
主體信息(也可能沒有)
例子:
HTTP/1.1 200 OK
Date:Fri,18 Mar 2016 04:56:28 GMT
Server:Apache/2.4.9 (Win32) PHP/5/5/12
X-Power-By:PHP/5.5.12
Content-Length:17
Content-Type:text/html
----------------------------------
請示方法有哪些?
GET POST HEAD PUT TRACE DELETE OPTIONS


注意:這些請求方法雖然HTTP協議裏規定的,但是Web Server中未必允許或者支持這些方法


HEAD 和 GET基本一致,只是不返回內容
such as:只是確定服務器中某圖片是否依然存在,可以使用HEAD


--------------狀態碼---------------------
狀態碼:是用來反應服務器響應情況的
最常見的如 200 OK,404 NOT FOUND


狀態碼 定義 說明
1**    信息 接收到請求,繼續處理
2**    成功 操作成功地收到,理解和接收
3**    重定向 爲了完成請求,必須採取進一步措施
4** 客戶端錯誤 請求的語法有錯誤或不能完全被滿足
5** 服務器錯誤 服務器無法完成明顯有效的請求
可移步這裏
http://www.blogjava.net/zjusuyong/articles/304788.html


/*********面試需要記住************/
200 - 服務器成功返回相應
301/2 - 永久重定向
304 - Not Modified 未修改 取得是緩存
(可參考燕十八的HTTP課程第二節中的測試實驗以加深理解)
(實際上測試很簡單,在telnet的請求頭上加上標籤)
失敗的狀態碼
404 - 請求的網頁不存在
500 - 服務器內部錯誤
503 - 服務器暫時不可用


如果post請求遭遇服務器重定向時發生數據無法轉發的情況,請在重定向的時候強制使用307的狀態碼,如
header("Location:你要重定向的url",true,307);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章