PUT和POST有什么區別?
1. 使用支持和范圍的區別: PHP提供了對PUT方法的支持,在Http定義的與服務器的交互方法中,PUT是把消息本體中的消息發送到一個URL,形式上跟POST類似; PHP 提供對諸如 Netscape Composer 和 W3C Amaya 等客戶端使用的 HTTP PUT 方法的支持; PHP 4 中,必須使用標準的輸入流來讀取一個 HTTP PUT 的內容; PUT方法沒有POST方法使用廣泛,但PUT方法卻是向服務器上傳文件最有效率的方法:
2. 上傳過程的區別: POST上傳文件時,通常需要將所有的信息組合成multipart 傳送過去,然后服務器再解碼這些信息,解碼過程則必不可少的會消耗內存和CPU資源,這種現象在上傳大文件時尤其明顯; PUT方法則允許你通過與服務器建立的socket鏈接傳遞文件的內容,而不附帶其他的信息,效果上更直接;
3. 上傳效果的區別: PHP 接受到 PUT 方法的請求時,會把上傳的文件儲存到和其它用 POST 方法處理過的文件相同的臨時目錄;請求結束時,臨時文件將被刪除。 用來處理 PUT 的 PHP 腳本必須將該文件拷貝到其它的地方;
4. POST和PUT請求根本區別 POST請求的URI表示處理該封閉實體的資源,該資源可能是個數據接收過程、某種協議的網關、或者接收注解的獨立實體; PUT請求中的URI表示請求中封閉的實體-用戶代理知道URI的目標; 服務器無法將請求應用到其他資源; 如果服務器希望該請求應用到另一個URI,就必須發送一個301響應; 用戶代理可通過自己的判斷來決定是否轉發該請求;