摘要:向指定資源提交數(shù)據(jù)比如提交表單,上傳文件,請(qǐng)求服務(wù)器進(jìn)行處理。通過指定資源的唯一標(biāo)識(shí)在服務(wù)器上的具體存放位置,請(qǐng)求服務(wù)器創(chuàng)建或更新資源。請(qǐng)求中會(huì)把和一并發(fā)送,但是會(huì)先發(fā)送瀏覽器響應(yīng)之后,再發(fā)送。
HTTP請(qǐng)求
HTTP請(qǐng)求由三部分組成:
請(qǐng)求行:包含請(qǐng)求方法、地址和HTTP的協(xié)議版本
消息報(bào)頭:包含一系列的鍵值對(duì)
請(qǐng)求正文(可選):和消息報(bào)頭之間有一個(gè)空行
信息報(bào)頭中的主要信息有
Host 是請(qǐng)求報(bào)頭域,用于指定被請(qǐng)求資源的 Internet 主機(jī)和端口號(hào),它通常從 HTTP URL 中提取出來;
Connection 表示連接狀態(tài),keep-alive 表示該連接是持久連(persistent connection),即 TCP 連接默認(rèn)不關(guān)閉,可以被多個(gè)請(qǐng)求復(fù)用,如果客戶端和服務(wù)器發(fā)現(xiàn)對(duì)方有一段時(shí)間沒有活動(dòng),就可以主動(dòng)關(guān)閉連接;
Cache-Control 用于指定緩存指令,它的值有 no-cache, no-store, max-age 等,max-age=秒表示資源在本地緩存多少秒;
User-Agent 用于標(biāo)識(shí)請(qǐng)求者的一些信息,比如瀏覽器類型和版本,操作系統(tǒng)等; Accept
用于指定客戶端希望接受哪些類型的信息,比如 text/html, image/gif 等;
Accept-Encoding 用于指定可接受的內(nèi)容編碼;
Accept-Language 用于指定可接受的自然語言;
Cookie 用于維護(hù)狀態(tài),可做用戶認(rèn)證,服務(wù)器檢驗(yàn)等,它是瀏覽器儲(chǔ)存在用戶電腦上的文本片段;
HTTP的請(qǐng)求方式HTTP請(qǐng)求方式通常有幾種方式
GET(SELECT):
從服務(wù)器取出資源(一項(xiàng)或多項(xiàng)),從服務(wù)器獲取指定(請(qǐng)求地址)的資源信息,它通常只用于讀取數(shù)據(jù),就像數(shù)據(jù)庫查詢一樣,不會(huì)對(duì)資源進(jìn)行修改
POST(CREATE):在服務(wù)器新建一個(gè)資源。向指定資源提交數(shù)據(jù)(比如提交表單,上傳文件),請(qǐng)求服務(wù)器進(jìn)行處理。數(shù)據(jù)被包含在請(qǐng)求正文中,這個(gè)請(qǐng)求可能會(huì)創(chuàng)建新的資源,或者更新現(xiàn)有的資源
PUT(UPDATE): 在服務(wù)器更新資源(客戶端提供改變后的完整資源)。通過指定資源的唯一標(biāo)識(shí)(在服務(wù)器上的具體存放位置),請(qǐng)求服務(wù)器創(chuàng)建或更新資源。
PATCH(UPDATE):在服務(wù)器更新資源(客戶端提供改變的屬性)。
DELETE(DELETE):從服務(wù)器刪除資源。
HEAD:獲取資源的元數(shù)據(jù)
OPTIONS:獲取信息,關(guān)于資源的哪些屬性是客戶端可以改變的。
GET和POST的區(qū)別:get的數(shù)據(jù)在url上,post在request body上
get只能進(jìn)行url編碼,post有多種編碼方式
get是tcp/ip一次,post是兩次
對(duì)get的參數(shù)有字符限制,而post沒有(瀏覽器對(duì)URL的長(zhǎng)度有限制,所以GET請(qǐng)求不能代替POST請(qǐng)求發(fā)送大量數(shù)據(jù))
get請(qǐng)求會(huì)被瀏覽器緩存,但是post不會(huì),除非手動(dòng)設(shè)置
當(dāng)瀏覽器回退時(shí),get是沒有影響的,但是post會(huì)再次提交請(qǐng)求
對(duì)參數(shù)的數(shù)據(jù)類型,get只能是ASCII字符,但是post沒有限制
對(duì)于第三點(diǎn)中的:get只產(chǎn)生一個(gè)TCP數(shù)據(jù)包,post是兩個(gè)數(shù)據(jù)包。get請(qǐng)求中會(huì)把header和data一并發(fā)送,但是post會(huì)先發(fā)送header,瀏覽器響應(yīng)100 continue之后,再發(fā)送data。
GET請(qǐng)求是冪等的
舉個(gè)例子:
GET只需要汽車跑一趟就能把貨送到,而POST要跑兩趟。第一趟先去和服務(wù)器打個(gè)招呼“hi,我等下要送一批貨,你們打開門迎接我”,然后再回頭把貨送過去。
因?yàn)镻OST需要兩步,時(shí)間上消耗的要多一點(diǎn),看起來GET比POST更有效,但是不能隨便改變兩種請(qǐng)求方式
1.get和post都有自己的語義,不能隨便混用
2.網(wǎng)絡(luò)環(huán)境好的時(shí)候,發(fā)一次包的時(shí)間和發(fā)兩次寶的時(shí)間基本可以忽略。但是在網(wǎng)絡(luò)環(huán)境差的情況下,兩次包的TCP在驗(yàn)證數(shù)據(jù)包完整性上,有非常大的優(yōu)點(diǎn)
3.并不是所有瀏覽器都會(huì)在POST中發(fā)送兩次包,F(xiàn)irefox就只發(fā)送一次。
客戶端/服務(wù)端模式
簡(jiǎn)單快速:客戶端向服務(wù)器請(qǐng)求服務(wù)時(shí),通過傳送請(qǐng)求方式、請(qǐng)求地址和數(shù)據(jù)體(可選)即可
靈活:允許傳輸任意類型的數(shù)據(jù)對(duì)象,通過Content-Type標(biāo)識(shí)
無狀態(tài):對(duì)事物處理沒有記憶能力
小結(jié)HTTP 是在網(wǎng)絡(luò)上傳輸 HTML 的協(xié)議,用于瀏覽器和服務(wù)器的通信,默認(rèn)使用 80 端口。
URL 地址用于定位資源,HTTP 中的 GET, POST, PUT, DELETE 用于操作資源,比如查詢,增加,更新等
GET, PUT, DELETE 是冪等的,POST 是不冪等的。
POST VS PUT
- 使用 PUT 創(chuàng)建資源需要提供資源的唯一標(biāo)識(shí)(具體存放位置),POST 不需要,POST 的數(shù)據(jù)存放位置由服務(wù)器自己決定 - 使用 PUT 更新某一資源,需要更新資源的全部屬性;而使用 POST,可以更新全部或一部分值 - POST 是不冪等的,PUT 是冪等的,這是一個(gè)很重要的區(qū)別
GET 可提交的數(shù)據(jù)量受到 URL 長(zhǎng)度的限制,HTTP 協(xié)議規(guī)范沒有對(duì) URL 長(zhǎng)度進(jìn)行限制,這個(gè)限制是特定的瀏覽器及服務(wù)器對(duì)它的限制。
理論上講,POST 是沒有大小限制的,HTTP 協(xié)議規(guī)范也沒有進(jìn)行大小限制,出于安全考慮,服務(wù)器軟件在實(shí)現(xiàn)時(shí)會(huì)做一定限制
參考鏈接:
99%的人都理解錯(cuò)了HTTP中GET與POST的區(qū)別
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88160.html
摘要:原文地址唯一的生成并不是一件小事想說愛它也并不是像簡(jiǎn)單來一個(gè)這樣一件容易的事為什么要唯一數(shù)據(jù)庫的自增在分庫的時(shí)候會(huì)是一場(chǎng)災(zāi)難假設(shè)分兩個(gè)庫因?yàn)槊總€(gè)庫都會(huì)開始從開始自增屆時(shí)系統(tǒng)中將會(huì)出現(xiàn)兩個(gè)為的用戶自增會(huì)暴露用戶量或者其他業(yè)務(wù)量自增會(huì)讓有心者 [原文地址:https://blog.ti-node.com/blog...] 唯一ID的生成并不是一件小事 , 想說愛它 , 也并不是像簡(jiǎn)單來一個(gè)...
摘要:扶持權(quán)利聯(lián)盟成員有權(quán)自薦所屬自媒體參與的扶持計(jì)劃,包括但不限于品牌背書資源扶持資金扶持。 PlusMedia PlusMedia自媒體聯(lián)盟,是國(guó)內(nèi)一線互聯(lián)網(wǎng)技術(shù)自媒體人最早自覺成立的民間合作 互助組織,聯(lián)盟成員近五十位,覆蓋逾70萬互聯(lián)網(wǎng)技術(shù)從業(yè)人員,是當(dāng)前中國(guó)最大的互聯(lián)技術(shù)圈的自媒體聯(lián)盟。該平臺(tái)旨在促進(jìn)互聯(lián)技術(shù)自媒體人價(jià)值的挖掘、培育、服務(wù)和變現(xiàn),為廣大互聯(lián)網(wǎng)技術(shù)人員提供最新技術(shù),培...
摘要:從外媒的報(bào)道來看,蘋果與亞洲汽車供應(yīng)商目前探討的焦點(diǎn),是在全球芯片短缺給汽車行業(yè)帶來重大影響的大背景下,如何生產(chǎn)蘋果汽車。值得注意的是,此前也曾出現(xiàn)蘋果高管拜訪亞洲汽車零部件制造商和整車組裝廠商的消息。 .markdown-body{color:#595959;font-size:15px;font-family:-apple-system,system-ui,BlinkMacSystem...
摘要:如果用戶不進(jìn)行充值并手動(dòng)續(xù)費(fèi),則扣費(fèi)失敗,資源狀態(tài)顯示為已過期產(chǎn)品到期通知提醒。續(xù)費(fèi)有效期過期產(chǎn)品的續(xù)費(fèi)。有效期內(nèi)的續(xù)費(fèi)行為是在原續(xù)費(fèi)周期結(jié)算后開始新的方式。1、預(yù)付費(fèi)產(chǎn)品支持開關(guān)自動(dòng)續(xù)費(fèi)功能 開啟自動(dòng)續(xù)費(fèi)開關(guān),當(dāng)您的賬戶余額充足時(shí),系統(tǒng)會(huì)在即將到期時(shí),自動(dòng)為您續(xù)費(fèi)。需要特別說明的是,自動(dòng)續(xù)費(fèi)是按之前的配置和時(shí)長(zhǎng)為您自動(dòng)續(xù)費(fèi)。當(dāng)賬戶余額不足時(shí),系統(tǒng)在資源即將到期時(shí),會(huì)扣費(fèi)失敗,資...
閱讀 1223·2021-09-03 10:44
閱讀 618·2019-08-30 13:13
閱讀 2814·2019-08-30 13:11
閱讀 1978·2019-08-30 12:59
閱讀 1049·2019-08-29 15:32
閱讀 1611·2019-08-29 15:25
閱讀 1006·2019-08-29 12:24
閱讀 1295·2019-08-27 10:58