一、get、post、put、delete、head、options
第乙個**get**方法是用來請求獲取資料的,不會對伺服器做出增刪改的操作:
1、請求安全性--不會涉及的伺服器的資料
2、冪等性--多次請求後結果一致
這個原因也比較簡單 根據http協議,get引數是後置在url上的,第一點是這樣會產生很多資料安全問題。而且網頁需要實現反覆讀取而不改變的功能,就是冪等性idempotent。從而get可以配合實現對請求獲取的資料實現快取。
第二個**post**方法和get方法一樣都是請求獲取資料的,最大的區別在於post請求資料是放在請求體中的,並且post往往是有***的,對於一些form表單的提交是使用post方法。通常會對伺服器端的資料進行修改,也就是非冪等的。可以想像得到,如果有乙個**專案,post下單後,伺服器端進行響應建立新的訂單,一旦下單請求使用的post可以快取,再通過post下單就會發現資料庫或者伺服器端沒有響應,從而無法實現真正的下單。
所以很多的提交操作都是post方法實現的。
第三個**put**方法
put和post都是提交增改資料的,put多了乙個指定存放路徑,而post沒有,post是通過伺服器決定存放在**的。
兩者的區別:put是冪等的,post不是。
第四個**delete**方法
這個方法是用來刪除乙個資源,很少使用。
第五個**head**方法
第六個**options**方法
這個方法主要是處理預檢的,經過檢測後才會向伺服器端發出請求命令。這就要提出兩個概念了兩種請求方式,簡單請求和非簡單請求。同時滿足下列三大條件,就屬於簡單請求,否則屬於非簡單請求
1.請求方式只能是:get、post、head
2.http請求頭限制這幾種字段:accept、accept-language、content-language、content-type、last-event-id
對於簡單請求,瀏覽器直接請求,會在請求頭資訊中,增加乙個origin欄位,來說明本次請求來自哪個源(協議+網域名稱+埠)。伺服器根據這個值,來決定是否同意該請求,伺服器返回的響應會多幾個頭資訊字段,如圖所示:上面的頭資訊中,三個與cors請求相關,都是以access-control-開頭。
1.access-control-allow-origin:該字段是必須的,* 表示接受任意網域名稱的請求,還可以指定網域名稱
2.access-control-allow-credentials:該欄位可選,是個布林值,表示是否可以攜帶cookie,(注意:如果access-control-allow-origin欄位設定*,此欄位設為true無效)
3.access-control-allow-headers:該欄位可選,裡面可以獲取cache-control、content-type、expires等,如果想要拿到其他字段,就可以在這個欄位中指定。比如圖中指定的guazisso
關於兩種請求方式的內容以上內容引自下方:
一些小的知識點
malloc calloc 等記憶體分配函式所獲得的記憶體塊都來自乙個稱為堆 heap 的儲存池。記憶體洩漏 memory leak 是指程式中己動態分配的堆記憶體由於某種原因程式未釋放或無法釋放,造成系統記憶體的浪費,導致程式執行速度減慢甚至系統崩潰等嚴重後果。記憶體洩漏缺陷具有隱蔽性 積累性的特...
一些小的知識點
1.recycleview中使用gridlayoutmanager使其有gridview的效果 布局,第乙個引數表示上下文,第二個引數表示 有多少列,如下 rv.setlayoutmanager new gridlayoutmanager this,3 在 布局中還可以修改引數,使其水平布局,那麼那...
Android中的一些小知識點
這些是自己這段時間用到的一些android中的知識點,來個小小總結 多有不足 一.的 快取 1 記憶體快取 優先載入,速度最快 2 本地快取 次優先載入 速度稍快 3 網路快取 最後載入 速度由網路速度決定 浪費流量 二 二次取樣 二次取樣分別是哪兩次?每次取樣的目的是什麼 第二次取樣 二次取樣的時...