042-HTTP協議之方法與狀態碼

3333333_ 發表於 2020-11-21

請求

請求行(請求方法 路徑 協議)

請求頭資訊(格式為 key:value)

空行

主體(傳送的內容 可選)

 

 

POST /test.php http/1.1

HOST:localhost

Content-type:application/x-www-form-urlencode

Content-length:5

 

age=3

 

 

 

返回

 

 

響應行 (協議 狀態碼 狀態文字)

響應頭資訊(格式為key:value)

空行

主體(返回的內容 也可能沒有)

 

 

http/1.1 200 OK

Content-type:text/html

Content-length:6

 

hello!

 

 

 

請求方法:

GET/POST/HEAD/ PUT/DELETE/TRACE/OPTIONS

 

HEAD:和GET基本一致,只是不返回內容。比如我們只是確認一個內容(比如照片)還正常存在,不需要返回照片的內容,用HEAD比較合適

 

 

TRACE :是你用了代理上網,比如用代理訪問new.163.com ,你想看看代理有沒有修改你的HTTP請求,你可以用TRACE來測試一下,163.com的伺服器會把最後收到的請求返回給你。

 

OPTIONS:是返回伺服器可用的方法。

 

狀態碼,狀態文字

 

狀態碼是用來反應伺服器響應情況的.

 最常用:200 OK,404 NOT FOUND   ,狀態文字是用來描述狀態碼的,以便於人觀察。

042-HTTP協議之方法與狀態碼

一些常用的狀態碼

   200 - 伺服器成功返回網頁

   301/2 - 永久/臨時重定向

   304 Not Modified - 未修改

307儲存重定向中有用的資料

   失敗的狀態碼:

   404 - 請求的網頁不存在

   503- 伺服器暫時不可用

   500-伺服器內部錯誤

 

Telnet模擬 瀏覽器獲取圖片快取

042-HTTP協議之方法與狀態碼

 

第一步:新建一個header.php頁

[php] view plain copy

  1. <?php  
  2.   
  3. header('Location:http://www.baidu.com');//預設是302重定向  
  4.   
  5. ?>  

第二步:分析

042-HTTP協議之方法與狀態碼

如何制定重定向呢?

指定用301重定向,

<?php   //header('Location:http://www.baidu.com');//預設是302重定向   header('Location:http://www.baidu.com',true,301);   ?>  

 

042-HTTP協議之方法與狀態碼

042-HTTP協議之方法與狀態碼

還有一個問題:

       對於一片新聞,get請求,重定向無所謂,還能看到原來的內容就行。但如果是POST資料,比如表單-->05.php,  05.php重定向->06.php。在06.php中會獲取不到資料。

       解決:在05.php中用307儲存重定向中有用的資料