HTTP提交方式之PUT詳細介紹及POST和PUT的區別
POST是用來提交資料的。提交的資料放在HTTP請求的正文裡,目的在於提交資料並用於伺服器端的儲存,而不允許使用者過多的更改相應資料(主要是相對於在url 修改要麻煩很多)。
PUT操作是冪等的。所謂冪等是指不管進行多少次操作,結果都一樣。比如我用PUT修改一篇文章,然後在做同樣的操作,每次操作後的結果並沒有不同
POST操作既不是安全的,也不是冪等的,比如常見的POST重複載入問題:當我們多次發出同樣的POST請求後,其結果是創建出了若干的資源。
安全和冪等的意義在於:當操作沒有達到預期的目標時,我們可以不停的重試,而不會對資源產生副作用。從這個意義上說,POST操作往往是有害的,但很多時候我們還是不得不使用它。
還有一點需要注意的就是,建立操作可以使用POST,也可以使用PUT,區別在於POST 是作用在一個集合資源之上的(/articles),而PUT操作是作用在一個具體資源之上的(/articles/123),再通俗點說,如果URL可以在客戶端確定,那麼就使用PUT,如果是在服務端確定,那麼就使用POST,比如說很多資源使用資料庫自增主鍵作為標識資訊,而建立的資源的標識資訊到底是什麼只能由服務端提供,這個時候就必須使用POST。
相關推薦
HTTP提交方式之PUT詳細介紹及POST和PUT的區別
POST是用來提交資料的。提交的資料放在HTTP請求的正文裡,目的在於提交資料並用於伺服器端的儲存,而不允許使用者過多的更改相應資料(主要是相對於在url 修改要麻煩很多)。PUT操作是冪等的。所謂冪等是指不管進行多少次操作,結果都一樣。比如我用PUT修改一篇文章,然後在做同
react-native熱更新之CodePush詳細介紹及使用方法
react-native熱更新之CodePush詳細介紹及使用方法 2018年03月04日 17:03:21 clf_programing 閱讀數:7979 標籤: react native熱更新code pus
Java 集合系列03之 ArrayList詳細介紹(原始碼解析)和使用示例
概要 上一章,我們學習了Collection的架構。這一章開始,我們對Collection的具體實現類進行講解;首先,講解List,而List中ArrayList又最為常用。因此,本章我們講解ArrayList。先對ArrayList有個整體認識,再學習它的原始
Java 集合系列10之 HashMap詳細介紹(原始碼解析)和使用示例
概要 這一章,我們對HashMap進行學習。 我們先對HashMap有個整體認識,然後再學習它的原始碼,最後再通過例項來學會使用HashMap。內容包括: 第1部分 HashMap介紹 第2部分 HashMap資料結構 第3部分 HashMap原始碼解析(基於J
Java 集合系列13之 WeakHashMap詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 import java.lang.ref.WeakReference; 3 import java.lang.ref.ReferenceQueue; 4 5 public class WeakHashMap<K,V>
Java 集合系列17之 TreeSet詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 3 public class TreeSet<E> extends AbstractSet<E> 4 implements NavigableSet<E>, Cloneable, java.i
Java 集合系列11之 Hashtable詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 import java.io.*; 3 4 public class Hashtable<K,V> 5 extends Dictionary<K,V> 6 implements Map
Java 集合系列16之 HashSet詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 3 public class HashSet<E> 4 extends AbstractSet<E> 5 implements Set<E>, Cloneable, java.i
Java 集合系列07之 Stack詳細介紹(原始碼解析)和使用示例
1 import java.util.Stack; 2 import java.util.Iterator; 3 import java.util.List; 4 5 /** 6 * @desc Stack的測試程式。測試常用API的用法 7 * 8 * @autho
Java 集合系列12之 TreeMap詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 3 public class TreeMap<K,V> 4 extends AbstractMap<K,V> 5 implements NavigableMap<K,V>, Clone
Java 集合系列06之 Vector詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 3 public class Vector<E> 4 extends AbstractList<E> 5 implements List<E>, RandomAccess, Cl
Java 集合系列05之 LinkedList詳細介紹(原始碼解析)和使用示例
1 package java.util; 2 3 public class LinkedList<E> 4 extends AbstractSequentialList<E> 5 implements List<E>, De
06 . Kubernetes之Pod控制器詳細介紹及應用
#### Pod API屬性詳解 > Pod是k8s叢集中的最小編排單位。將這個設計落實到API物件上,容器就成了Pod屬性裡一個普通的欄位。那麼到底哪些屬性屬於Pod物件,哪些屬性屬於容器的呢?先看下面的一段描述: > > > > 假如把Pod看成傳統環境裡的"機器"、那麼容器就是執行在這個"機器"
Python零基礎學習系列之二--Python介紹及環境搭建
url 軟件包 三方庫 簡單的 lin 文件的 span 高級程序設計 擴展 1-1、Python簡介: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年
轉---CentOS安裝Oracle數據庫詳細介紹及常見問題匯總
cati res export 硬件 image centos 6 bin pre 數據庫安裝 一、安裝前準備 1.軟件硬件要求 操作系統:CentOS 6.4(32bit)Oracle數據庫版本:Oracle 10g(10201_database_linux32.zi
linux安裝系統分區詳細介紹及常用ls命令
自動分區 fff 英語基礎 沒有 擁有 inux 文件夾 swap user linux對於沒有基礎的初學者來說,最難的就是第一步,不為什麽因為萬事開頭難,第一步就是裝系統分區,而這裏面最難的我認為就是分區部分,如果是讓系統自動分區那就很簡單,但對於初學者一般都是要手動分區
CentOS 6.9配置網卡IP/網關/DNS命令詳細介紹及一些常用網絡配置命令(轉)
linux. centos fly fig details oba routing href 修改dns 一、IP 即時生效(重啟後失效): ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址 r
初識TomCat之2——TomCat介紹及安裝
重啟 一個tomcat security direct 查看 介紹 虛擬 vpd use 一、TomCat介紹通過之前的介紹,Tomcat與JDK共同構成了一個Web Container容器,它在JDK的基礎上提供了Servlet和JSP組件,可以接受來自客戶端的動態請求,
Oracle 11g服務詳細介紹及哪些服務是必須開啟的?
系統 創建 span rac div 哪些 能夠 對象 sql*plus 按照windows 7 64位 安裝oracle 11g R2中的方法成功安裝Oracle 11g後,共有7個服務,這七個服務的含義分別為: 1. Oracle ORCL VSS Writer Se
Oracle 11g服務詳細介紹及必須開啟的服務
home 映射 遠程訪問 cover AC 管理器 ise 默認 影響 按照windows 7 64位 安裝oracle 11g R2中的方法成功安裝Oracle 11g後,共有7個服務,這七個服務的含義分別為: 1. Oracle ORCL VSS Writer Serv