HTTP請求get和post相關(guān)內(nèi)容整理

參考文獻(xiàn)
http://android.jobbole.com/85218/
http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
https://www.zhihu.com/question/28586791

總是被問及get和post的區(qū)別,感覺每個人的回答都有些許不同.借此機會把相關(guān)的知識和要點進(jìn)行一些總結(jié).

HTTP請求

要講到get和post的區(qū)別,首先需要對http請求的相關(guān)知識有一定的理解.

什么是HTTP

HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
最常見的一個HTTP請求就是我們打開瀏覽器輸入一個網(wǎng)址,這樣的操作就是一個標(biāo)準(zhǔn)的get請求過程,瀏覽器請求url地址的內(nèi)容,呈現(xiàn)給終端用戶進(jìn)行展示.

HTTP請求的傳送過程
HTTP請求

借用他人的圖片,其中很詳細(xì)的闡述了一次http請求傳送過程的7個步驟.只有在建立連接之后才能實現(xiàn)相互間的通信.
通過這個圖看一看到,建立tcp連接需要三次傳輸(即常說的三次握手).在進(jìn)行消息傳送之前需要雙發(fā)確認(rèn)都能發(fā)送并接收消息.

  1. 瀏覽器向服務(wù)器發(fā)送一個請求
  2. 服務(wù)器收到請求告知瀏覽器,可以收到
  3. 瀏覽器回復(fù)服務(wù)器我亦能收到你發(fā)送的內(nèi)容

經(jīng)過雙方確知之后表示連接建立成功.然后就可以進(jìn)行消息發(fā)送了.

HTTP報文

建立連接之后就開始內(nèi)容的傳輸.可以通過chrome瀏覽器的開發(fā)者工具查看請求的信息(注意瀏覽器顯示的報文信息是格式化過的).
報文分為請求報文和相應(yīng)報文.為了講解get和post的區(qū)別,報文相關(guān)的知識必須要有所了解.因為在降到請求傳遞參數(shù)的時候需要用到.

HTTP報文格式
HTTP報文

從客戶端發(fā)往Web服務(wù)器的HTTP報文稱為請求報文(request message),從服務(wù)器發(fā)往客戶端的報文稱為響應(yīng)報文(response message).HTTP請求和響應(yīng)報文的格式很類似.
HTTP 報文包括以下三個部分:

  1. 報文起始行
    報文的第一行就是起始行,在請求報文中用來說明用什么方式向什么地址做請求,在響應(yīng)報文中說明返回的狀態(tài)信息(成功、失敗等)
  2. 報文頭部
    起始行后面跟隨報文的頭部信息(可以沒有).每個頭部字段都包含一個名字和一個值,為了便于解析,兩者之間用冒號(:)來分隔.報文頭部以一個空行結(jié)束.
  3. 報文體
    空行之后的內(nèi)容被認(rèn)定為報文體,其中包含了所有類型的數(shù)據(jù).請求主體中包括了要發(fā)送給 Web 服務(wù)器的數(shù)據(jù);響應(yīng)主體中裝載了要返回給客戶端的數(shù)據(jù).起始行和頭部都是文本形式且都是結(jié)構(gòu)化的,而主體則不同,主體中可以包含任意的二進(jìn)制數(shù)據(jù)(比如圖片、視頻、音軌、軟件程序)或者文本信息.報文體中的數(shù)據(jù)以什么形式解析可以在報文頭的Content-type屬性中進(jìn)行指定.

GET和POST請求

在發(fā)送HTTP請求的時候,可以在請求行中指定請求的方式.最常見的是GET和POST,當(dāng)然還有其他的(PUT,DELETE,PATCH等等).

  • GET - 從指定的資源請求數(shù)據(jù)。
  • POST - 向指定的資源提交要被處理的數(shù)據(jù)

w3schools上以一個表格的形式列出了兩者的區(qū)別


比較GET與POST

通過表格可以看到兩者的區(qū)別.確切的講這些應(yīng)該算是實現(xiàn)形式上的區(qū)別,發(fā)送GET或者POST請求時應(yīng)該使用的方法.

GET的語義是請求獲取指定的資源.GET方法是安全、冪等、可緩存的(除非有 Cache-ControlHeader的約束),GET方法的報文主體沒有任何語義.
POST的語義是根據(jù)請求負(fù)荷(報文主體)對指定的資源做出處理,具體的處理方式視資源類型而不同.POST不安全,不冪等,不可緩存.

冪等

冪等(idempotent、idempotence)是一個數(shù)學(xué)與計算機學(xué)概念,常見于抽象代數(shù)中。
在編程中.一個冪等操作的特點是其任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。冪等函數(shù),或冪等方法,是指可以使用相同參數(shù)重復(fù)執(zhí)行,并能獲得相同結(jié)果的函數(shù)。這些函數(shù)不會影響系統(tǒng)狀態(tài),也不用擔(dān)心重復(fù)執(zhí)行會對系統(tǒng)造成改變。
百度百科
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容