當前位置: 妍妍網 > 碼農

面試官:Http 請求方法有幾種?只有四種?我只知道四種。。。

2024-04-25碼農

引言:Http 請求方法有幾種?一部份基礎差的同學,只知道兩種 GET 和 POST,基礎一般知道 4 種,加上 PUT 和 Delete,但實際上其實是有 9 種請求方法(可能更多),本文就帶大家來分析下各個方法的作用和使用場景,讓大家能夠回答這個簡單的問題的時候,能夠回應一些不簡單的回答。

題目

面試官:Http 請求方法有幾種?只有四種?我只知道四種...

推薦解析

版本叠代

HTTP 請求方法有幾種是和 HTTP 版本有關的,很多面試官可能問的也不嚴謹,那麽這時候你應該指出 HTTP1.0 和 HTTP1.1 以及 HTTP1.1 以後,都新增了哪些請求方法。

HTTP1.0 三種請求方式:GET、POST、HEAD。

HTTP1.1 五種請求方法:OPTIONS、PUT、DELETE、TRACE、CONNECT。

HTTP1.1 之後引入了 PATCH 方法。

總計為九種。

請求方法作用

1)GET 方法發送請求獲取伺服器上的資源

2)POST 方法向 URL 指定的資源送出數據或者附加新的數據。

3)HEAD 方法,用於獲取報文頭,沒有響應內容。

4)OPTIONS 預檢請求,瀏覽器獲取資源前,先發送預檢請求,去獲取伺服器支持的 HTTP 請求方法,第二個作用是用於檢查伺服器效能,在 CORS 解決跨域的方案中,就會有預檢請求。瀏覽器將 CORS 分為兩類:簡單請求和非簡單請求。簡單請求是不會預檢的,非簡單請求會預檢。

同時滿足以下三個條件就屬於簡單請求。

1)請求方式只能是:GET、POST、HEAD

2)HTTP 請求頭限制這幾種欄位:Accept、Accept-Language、Content-Language、Content-Type、Last-Event-ID

3)Content-type 只能取:application/x-www-form-urlencoded、multipart/form-data、text/plain

5)PUT 方法,將請求的數據儲存到對應的路由的 URL,一般更新(建立)資源。

6)DELETE 方法:刪除伺服器上某個資源,比如刪除某條表單的記錄。

7)TRACE 方法:用於回顯伺服器收到的請求,測試或診斷。

8)CONNECT 方法:和代理伺服器建立隧道連線,一般用於 HTTPS 的代理伺服器。

9)PATCH 方法:對某個資源的一部份進行修改。

GET 和 POST 的區別

GET 方法是相對不安全的,因為參數會暴露在 URL 中,如果參數是敏感資訊,又沒有進行加密,此時就有安全風險。而 POST 請求是安全的,它的請求參數在請求體中,而不是在 URL中,如果用 HTTP 協定那麽明文傳輸,無論是 GET 還是 POST 都是不安全的。

GET 一般用於獲取資源,而 POST 用於送出資源。

GET 方法是冪等性的,而 POST 方法不是冪等性的。關於 介面冪等性 大家 可以去好好研究一下,這一塊涉及到重復消費和重復支付等等問題,會有很多場景題,問到這一塊完全可以結合實際計畫去給面試官展開,甚至是前端的防抖和節流,也都可以去講。

GET 請求一般受到長度限制,一般不傳遞大數據量,而且 GET 只能傳遞字串型別的參數。

POST 請求沒有長度的限制,可以大數據量傳送,而且支持多種的格式,物件,JSON,字串等等。

GET 請求是會被緩存的,伺服器將會進行記錄。POST 請求是不會被緩存的。

GET 請求一個封包,POST 由於 MTU 和 MSS 可能會進行切割,發送多個封包,但請求是一次,兩次可能是預檢,跟 HTTP 版本又有很大關系,深入這塊需要自己進行前端抓包實踐。

其他補充

魚聰明 AI 的回答:

魚聰明 AI 地址:https://www.yucongming.com/

根據HTTP/1.1版本,共定義了8種請求方法,分別是:

  1. GET :用於請求指定的資源。GET請求只是獲取數據,不會對伺服器端資源產生任何影響,通常用於從伺服器獲取數據。

  2. POST :向指定資源送出數據進行處理請求。POST請求用於向伺服器送出數據,通常用於表單送出、檔上傳等操作。

  3. PUT :向指定資源送出數據,但不會對資源產生影響,通常用於更新伺服器上的資源。

  4. DELETE :刪除指定的資源。

  5. HEAD :類似於GET請求,但伺服器只返回頭資訊,不返回實體主體部份。通常用於獲取資源的頭資訊而不獲取實際內容。

  6. OPTIONS :用於獲取目的資源所支持的請求方法、通訊協定等資訊。

  7. TRACE :回顯伺服器收到的請求,用於測試、診斷。

  8. CONNECT :用於代理伺服器與目標伺服器之間的通訊。

除了以上8種常見的請求方法,HTTP/1.1還定義了一些擴充套件的請求方法,如PATCH、PROPFIND、PROPPATCH等。這些請求方法通常用於特定的套用場景,具體使用方法可以根據實際需求進行了解和使用。

歡迎交流

在閱讀完本文後你應該對 Http 請求方法的種類、作用和主要區別有了一定的了解,在文末還有三個問題去檢驗本次學習的成果,歡迎小夥伴在評論區交流見解!

1)GET和POST請求方法有什麽區別?它們在什麽場景下分別應該使用?

2)PUT和PATCH請求方法有何異同?它們在更新資源時有何不同的作用?

3)HEAD請求方法和GET請求方法之間的聯系和區別是什麽?它們在實際套用中有什麽不同的使用場景?

點燃求職熱情!每周持續更新,海量面試題和面經等你挑戰!趕緊關註面試鴨公眾號,輕松備戰春招和暑期實習!

往期推薦