關於 HTTP 經常使用 Methods

前言

對於 HTTP 請求方法,seaconch 一直是有不少疑惑,按照計劃今天就來了解一下各個請求有何區別瀏覽器

概述

根據HTTP標準,HTTP請求可使用多種請求方法。緩存

HTTP1.0定義了三種請求方法: GET、POST 和 HEAD方法。服務器

HTTP1.1新增了五種請求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。app

seaconch 今天只總結其中常見的幾種方法網站

簡單請求與預檢請求

1.簡單請求

HTTP 1.0 三個方法:HEAD、GET、POST 默認都屬於簡單請求 Simple Requesturl

  • 沒有自定義報頭
  • MIME Type in text/plain、multipart/form-data、application/x-www-form-urlencoded

2.預檢請求

預檢請求 Priflight Request 即在請求以前須要首先由瀏覽器自發發送 Options 請求的請求code

預檢請求的範圍orm

通常 HTTP1.1 中的方法請求默認都會觸發預檢請求對象

可是簡單請求知足一下條件也能夠觸發 Options 請求ip

  • 帶有自定義頭信息
  • MIME Type Not in text/plain、multipart/form-data、application/x-www-form-urlencoded

GET

1.方法用途

GET 方法的首要目的是 獲取資源

固然您也能夠走野路子,不過在這裏 seaconch 並不提倡哦

2.方法特色

a) 參數可見

GET 方法的參數是明文可見的包含在 URL 當中,因此說敏感信息不建議使用 GET 方法

不過也正是所以,因此 GET 方法容許被保存書籤

b) 數據類型只容許 ASCII

GET 方法的數據類型只容許是 ASCII 字符,因此說傳遞 二進制 文件就不能夠用 GET 方法了哦

c) 能夠保存書籤

當咱們訪問某一個網站的頻率特別高的時候,確定添加到書籤,那其實書籤就是依靠 GET 方法來保存的

d) 能夠被緩存

GET 方法支持緩存,當本次請求容許被緩存時,會將資源存值本地 cache ,在未過時的狀況下直接取本地 cache;緩存過時後視狀況而定

e) 參數會保留在瀏覽器歷史記錄

比較直觀的感覺就是,咱們能夠在瀏覽器的歷史記錄中查看到曾經搜索過的關鍵字信息

f) 請求長度會受限於所使用的瀏覽器與服務器

不一樣的瀏覽器對於 GET 請求長度的限制也是不一樣的,注意這是 瀏覽器 / 服務器(IE、Chrome、Apache、IIS等) 對於長度的限制,而不是 HTTP 協議

POST

1.方法用途

POST 方法的首要目的是 提交,POST 方法通常用於添加資源

2.方法特色

a) 參數不可見,也不會被保存

因此說 POST 方法是不能夠被保存書籤的

b) 不能收藏爲書籤

理由如上

c) 不能夠被緩存

我要提交的數據被緩存在本地 cache 中想一想其實也是沒道理的

d) 不會被保存在瀏覽器歷史中

一樣是由於參數不可見

e) 不限制請求長度

對於 POST 方法這種以 提交 爲首要目的的方法,確定是不能夠限制請求長度的

f) 數據類型

不限,因此說 POST 是能夠 提交文件 到服務器的

g) 請求方式

POST 請求與 GET 請求不一樣,他會首先提交 HEAD 信息,待獲得 100 響應後,纔會再次將 DATA 提交

HEAD

1.方法用途

HEAD 方法用於獲取報頭信息,例如檢查 cache 是否被修改,是否過時?

2.方法特色

HEAD 方法與 GET 方法相似,但並不會返回響應主體

OPTIONS

1.方法用途

OPTIONS 方法的首要目的是 Priflight Request

2.方法特色

假如我如今有以下配置:

Access-Control-Allow-Methods:OPTIONS, PUT

那麼當瀏覽器發起了 Priflight Request 後,只在包含在 被容許的 HTTP 方法中的請求會被經過(Simple Request除外),而沒有被包含在內的請求,例如 DELETEOPTIONS 以後將不會被請求

PUT 與 PATCH

1.方法用途

PUT 與 PATCH 方法都是用於更新資源

2.方法特色

PUT 對後臺來講 PUT 方法的參數是一個完整的資源對象,它包含了對象的全部字段

PATCH 對後臺來講 PATCH 方法的參數只包含咱們須要修改的資源對象的字段

DELETE

1.方法用途

DELETE 方法通常用於刪除資源

方法與規範

其實雖然咱們都說 POST(增) DELETE(刪)PUT(改)GET(查),但其實真正咱們是如何實現方法的是隨意的,也就是你徹底能夠用 GET 刪除資源,DELETE 增長資源,因此說還有些沒想明白的同窗到這裏就能夠釋然了,畢竟規定是死的,人是活的,可是按照規定是好的,不按規定也是能夠的。

晚安

相關文章
相關標籤/搜索