#get和post特點
get請求:請求參數(shù)在請求地址后面,提交的數(shù)據(jù)量較小,安全性較差,不建議用來提交敏感信息(地址欄中會顯示,并且有可能被保存請求地址)。
-
功能:GET 方法用于獲取由 Request-URI 所標識的資源的信息
-
默認方法:
GET方法是默認的HTTP請求方法
,例如當我們通過在瀏覽器的地址欄中直接輸入網(wǎng)址的方式去訪問網(wǎng)頁的時候,瀏覽器采用的就是 GET 方法向服務器獲取資源。 -
使用GET方法來提交表單數(shù)據(jù)存在的問題?
- GET方法提交的表單數(shù)據(jù)只經(jīng)過了
簡單的編碼,存在著安全隱患
。 - 提交的
數(shù)據(jù)量不能太
,這是因為瀏覽器對URL的長度有限制,而提交的數(shù)據(jù)是作為URL請求的一部分
。 - 該方法的
響應是可緩存的
- GET方法提交的表單數(shù)據(jù)只經(jīng)過了
-
請注意,
查詢字符串
(名稱/值對)是在 GET 請求的 URL 中發(fā)送的 -
GET 請求
可被緩存
:chrome下和firefox下如果檢測到get請求的是靜態(tài)資源,則會緩存
,如果是數(shù)據(jù),則不緩存
,但是IE這個傻X啥都會緩存起來 -
GET 請求保留在瀏覽器歷史記錄中
-
GET 請求可被收藏為書簽
-
GET 請求
不應在處理敏感數(shù)據(jù)時使用
-
GET?
請求有長度限制
?,大多數(shù)瀏覽器通常都會限制url長度在2K個字節(jié)
-
GET 請求
只應當用于取回數(shù)據(jù)
-
只接受
ASCII字符
的參數(shù)的數(shù)據(jù)類型 -
get效率高
post請求:請求參數(shù)放在請求體中提交,提高的數(shù)據(jù)量大小沒有限制,敏感信息相對安全。
功能:GET方法的一個替代方法,它主要是向Web服務器提交表單數(shù)據(jù)
,尤其是大批量的數(shù)據(jù)
,克服了GET方法中的信息無法保密
和數(shù)據(jù)量太小
的缺點。該方法的響應是不可緩存的,除非響應里有合適的Cache-Control或者Expires頭域。
- 功能:GET方法的一個替代方法,它
主要是向Web服務器提交表單數(shù)據(jù)
,尤其是大批量的數(shù)據(jù)
,克服了GET方法中的信息無法保密
和數(shù)據(jù)量太小
的缺點。該方法的響應是不可緩存的,除非響應里有合適的Cache-Control或者Expires頭域。 - 查詢字符串(名稱/值對)是在 POST 請求的?
HTTP 消息主體
中發(fā)送的 - POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏為書簽
- POST 請求
對數(shù)據(jù)長度沒有要求
- POST
支持多種編碼方式
- post請求包含更多的請求頭
- post不能進行管道化傳輸
# get 請求過程和post 請求過程
get:
- 瀏覽器請求tcp連接(第一次握手)
- 服務器答應進行tcp連接(第二次握手)
- 瀏覽器確認,并發(fā)送get請求頭和數(shù)據(jù)(第三次握手,這個報文比較小,所以http會在此時
進行第一次數(shù)據(jù)發(fā)送
) - 服務器返回200響應成功
post:
- 瀏覽器請求tcp連接(第一次握手)
- 服務器答應進行tcp連接(第二次握手)
- 瀏覽器確認,并發(fā)送post請求頭(第三次握手,這個報文比較小,所以http會在此時
進行第一次數(shù)據(jù)發(fā)送
) - 服務器返回100 continue響應
- 瀏覽器開始發(fā)送數(shù)據(jù)
- 服務器返回200響應成功
#兩者區(qū)別
GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。
1、GET參數(shù)通過URL傳遞,POST放在Request body中。
2、GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
3、GET請求參數(shù)會被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會被保留。
4、GET請求只能進行url編碼,而POST支持多種編碼方式。
5、POST請求的安全性比GET請求的安全性高,因為GET請求的參數(shù)是不加密,明文傳輸?shù)模視苯语@示到瀏覽器的瀏覽框上;POST請求的數(shù)據(jù)則是可加密的,也不會顯示到瀏覽器的瀏覽框上。
6、GET請求中有非 ASCII 字符,會在請求之前進行轉(zhuǎn)碼,POST不用,因為POST在Request body中,通過 MIME,也就可以傳輸非 ASCII 字符。
7、并不是所有瀏覽器都會在POST中發(fā)送兩次包,F(xiàn)irefox就只發(fā)送一次。
#為什么get比post效率高
最重要原因:?post在真正接受數(shù)據(jù)之前會先將請求頭發(fā)送給服務器進行確認,然后才真正發(fā)送數(shù)據(jù)。
#其他請求方法
1. HEAD
HEAD與GET方法一樣,都是向服務器請求資源,但是不會返回響應體。這樣,我們可以不傳輸全部內(nèi)容的情況下,就可以獲取服務器的響應頭信息。常用于客戶端查看服務器的性能。
2. PUT
若請求的URI是已經(jīng)存在的資源,則put請求所附屬的實體應被當做修改服務器中的資源,成功的話返回200或204。若請求的URI資源不存在,則URI可以被定義成新的資源,這是,服務器必須通過201(建立)響應通知用戶。【PUT用于增加資源信息】
3. DELETE
請求服務器刪除所請求的URI所標識的資源。【DELETE用于刪除資源信息】
4. OPTIONS
返回該資源所支持的所有HTTP請求方法。文章來源:http://www.zghlxwxcb.cn/news/detail-858183.html
5. TRACE
6. 回顯服務器收到的請求,用于測試和診斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-858183.html
到了這里,關于HTTP中get和post請求方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!