HTTP方法及GET方法和POST方法的區(qū)別

? ? ? 1.GET方法-獲取資源:GET方法用來請求訪問已被URI識(shí)別的資源。指定的資源經(jīng)服務(wù)端解析后返回響應(yīng)內(nèi)容。也就是說,如果請求的資源是文本,那就保持原樣返回;如果是像CGI(通用網(wǎng)關(guān)接口)那樣的程序,則返回經(jīng)過執(zhí)行后的輸出結(jié)果。

? ? ? ? 2.POST方法-傳輸實(shí)體主體:POST方法用來傳輸實(shí)體的主體。雖然用GET方法也可以傳輸實(shí)體的主體,但一般不用GET方法進(jìn)行傳輸,而是用POST方法。雖說POST的功能與GET很相似,但POST的主要目的并不是獲取響應(yīng)的主體內(nèi)容。

? ? ? ? 3.PUT方法-傳輸文件:PUT方法用來傳輸文件。就像FTP協(xié)議的文件上傳一樣,要求在請求報(bào)文的主體中包含文件內(nèi)容,然后保存到請求URI指定的位置。但是鑒于HTTP/1.1的PUT方法自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件,存在安全性問題,因此一般的Web網(wǎng)站不使用該方法。若配合Web應(yīng)用程序的驗(yàn)證機(jī)制,或架構(gòu)設(shè)計(jì)采用REST(表征狀態(tài)轉(zhuǎn)移)標(biāo)準(zhǔn)的同類Web網(wǎng)站,就可能會(huì)開放使用PUT方法。

? ? ? ? 4.HEAD方法-獲得報(bào)文首部:HEAD方法和GET方法一樣,只是不返回報(bào)文主體部分。用于確認(rèn)URI的有效性及資源更新的日期時(shí)間等。

? ? ? ? ? 5.DELETE方法-刪除文件:DELETE方法用來刪除文件,是與PUT相反的方法。DELETE方法按請求URI刪除指定資源。但是,HTTP/1.1的DELETE方法本身和PUT方法一樣不帶驗(yàn)證機(jī)制,所以一般的Web網(wǎng)站也不使用DELETE方法。當(dāng)配合Web應(yīng)用程序的驗(yàn)證機(jī)制,或遵守REST標(biāo)準(zhǔn)時(shí)還是有可能會(huì)開放使用的。

? ? ? ? ? 6.OPTIONS方法-詢問支持的方法:OPTIONS方法用來查詢針對請求URI指定的資源支持方法。

? ? ? ? ? 7.TRACE方法-追蹤路徑:TRACE方法是讓W(xué)eb服務(wù)器端將之前的請求通信返回給客戶端的方法。

? ? ? ? ? 8.CONNECT方法-要求用隧道協(xié)議連接代理:CONNECT方法要求在與代理服務(wù)器通信時(shí)建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通信。主要使用SSL(安全套接層)和TLS(傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸。


GET和POST的區(qū)別:

1>GET請求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如:login.actionname=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進(jìn)制表示的ASCII。? POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中。

2>GET后退按鈕/刷新無害,POST數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會(huì)被重新提交)。

3>GET書簽可收藏,POST為書簽不可收藏。

4>GET能被緩存,POST不能緩存 。

5>與 POST 相比,GET 的安全性較差,因?yàn)樗l(fā)送的數(shù)據(jù)是 URL 的一部分。在發(fā)送密碼或其他敏感信息時(shí)絕不要使用 GET !POST 比 GET 更安全,因?yàn)閰?shù)不會(huì)被保存在瀏覽器歷史或 web 服務(wù)器日志中。

6>"GET方式提交的數(shù)據(jù)最多只能是1024字節(jié)",因?yàn)镚ET是通過URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長度有直接關(guān)系了。而實(shí)際上,URL不存在參數(shù)上限的問題,HTTP協(xié)議規(guī)范沒有對URL長度進(jìn)行限制。這個(gè)限制是特定的瀏覽器及服務(wù)器對它的限制。IE對URL長度的限制是2083字節(jié)(2K+35)。對于其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決于操作系統(tǒng)的支持。

  注意這是限制是整個(gè)URL長度,而不僅僅是你的參數(shù)值數(shù)據(jù)長度。[見參考資料5]

  (2).理論上講,POST是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,說“POST數(shù)據(jù)量存在80K/100K的大小限制”是不準(zhǔn)確的,POST數(shù)據(jù)是沒有限制的,起限制作用的是服務(wù)器的處理程序的處理能力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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