post 405 method not allowed

weixin_34119545發表於2014-03-30

HTTP 405 錯誤 – 方法不被允許 (Method not allowed)  

 

介紹

HTTP 協議定義一些方法,以指明為獲取客戶端(如您的瀏覽器或我們的 CheckUpDown 機器人)所指定的具體網址資源而需要在 Web 伺服器上執行的動作。則這些方法如下:

  • OPTIONS( 選項 ) :查詢適用於一個特定網址資源的通訊選擇。 在不需執行具體的涉及資料傳輸的動作情況下, 允許客戶端來確定與資源相關的選項以及 / 或者要求, 或是一個伺服器的效能。
  • GET( 獲取 ) :檢索由網址資源所確定的資訊,如獲取一個特定的網頁或圖片。這是最常用的方法。
  • HEAD( 頭 ) :除了伺服器只反饋標頭資訊而不是網址資源所確定的資訊本身外, 基本同於 GET ( 獲取 ) 。 可用於獲取一個請求所要求的響應實體的元資訊 ( metainformation) ,而不需傳輸響應實體本身。 經常用來測試超文字連結的有效性, 可達性, 和最近的修改。
  • POST( 投寄 ) :將資料提交到 Web 伺服器,如 1 )在電子公告板,新聞組中,或向 郵件名單傳送資訊, 2 )提供輸入資料 - 通常由一個公共閘道器介面(CGI) 表, 到 一個資料處理程式, 3 )直接將記錄新增到一個資料庫中。
  • PUT( 放置 ) :將一個具體網址的資料設定( 置入 / 替換)成客戶提交的新資料。例如,將新的網頁上載給伺服器。
  • DELETE( 刪除 ) :刪除與網址資源相關的資料。例如,刪除網頁。
  • TRACE( 跟蹤 ) :執行請求資訊的一個遠端應用層回送。 實際上是一個 'ping', 用以測試 Web 伺服器正在從客戶端接收什麼資料。
  • CONNECT( 連線 ) :保留以便通過代理伺服器和隧道一起使用(如 SSL )。這種方法只在 HTTP 1.1 版中定義, 而在先前的 1.0 版中卻沒有。

所有 Web 伺服器都可以被設定為允許或不允許任何方法。例如,如果一個 Web 伺服器是 ' 只讀 ' (客戶端不能修改 Web 伺服器上的網址資源) ,那麼它可以被設定為不允許 PUT 和 DELETE 方法。 同樣,如果沒有使用者輸入(所有的網頁都是靜態的) , 那麼 POST 方法可設定為不允許。 所以, 405 錯誤可能會因 Web 伺服器沒有被設定為從客戶端接受輸入資料而出現。 另外, 如果客戶端對請求中指明的具體網址資源沒有足夠的權力, 該錯誤也會出現。

 


 

 

也就是說,在IIS中,html頁post資料到另一個html頁都會出現405 method not allowed,而我測試把檔案放本地不能過IIS,直接用瀏覽器開啟就不會出現這種錯誤的。

 

看來還是要深入瞭解IIS的 “請求篩選”,之前一直以為只要是HTML純靜態檔案,IIS就直接把指令碼扔給瀏覽器就不管了。

 

 

 

相關文章