get 與 post的區(qū)別?application json 與form表單的區(qū)別?

今天給大家分享:【JS-Task05】get 與 post的區(qū)別?application json 與form表單的區(qū)別?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分享人:聶義中

目錄

1.背景介紹

2.知識(shí)剖析

3.常見問題

4.解決方案

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

7.參考文獻(xiàn)

8.更多討論

1.背景介紹

首先我們要了解HTTP協(xié)議,這是一種通信協(xié)議,不同的聯(lián)機(jī)方式與所使用的網(wǎng)絡(luò)服務(wù)而定, 會(huì)有不同的通信協(xié)議,發(fā)送郵件的時(shí)候要使用SMTP,傳輸文件會(huì)使用FTP,下載信件時(shí)會(huì) 使用POP3等,而瀏覽器跟WEB服務(wù)器之間的溝通方式則是HTTP。

HTTP是一種基于請(qǐng)求響應(yīng)的通信協(xié)議,客戶端對(duì)服務(wù)器發(fā)出一個(gè)取得資源的請(qǐng)求,服務(wù)器 將要求的資源響應(yīng)給客戶端,每次的聯(lián)結(jié)只作一次請(qǐng)求/響應(yīng),是一種很簡(jiǎn)單的通信協(xié)議, 沒有請(qǐng)求就沒有響應(yīng)

HTTP協(xié)議之下,服務(wù)器是個(gè)健忘的家伙,服務(wù)器響應(yīng)客戶端之后,就不會(huì)記得客戶端的信息, 更不會(huì)去維護(hù)與客戶端有關(guān)的狀態(tài),因此http又稱為無(wú)狀態(tài)的通信協(xié)議

URL全稱是資源描述符,我們可以這樣認(rèn)為:一個(gè)URL地址,它用于描述一個(gè)網(wǎng)絡(luò)上的資源, 而HTTP中的GET,POST,PUT,DELETE就對(duì)應(yīng)著對(duì)這個(gè)資源的查 ,改 ,增 ,刪 4個(gè)操作。 到這里,大家應(yīng)該有個(gè)大概的了解了,GET一般用于獲取/查詢 資源信息,而POST一般用于更新 資源信息

2.知識(shí)剖析

get

get請(qǐng)求,顧名思義,就是向服務(wù)器取得指定的資源,在發(fā)出get請(qǐng)求時(shí)必須一并告訴服務(wù)器所請(qǐng)求資源的URL,以及一些標(biāo)頭信息

post

POST請(qǐng)求,顧名思義,就是在請(qǐng)求的時(shí)候發(fā)布信息給服務(wù)器,對(duì)于大量或復(fù)雜的信息發(fā)送,基本都會(huì)采用POST來進(jìn)行發(fā)送

3.常見問題

get 與 post的區(qū)別?

4.解決方案

post和get之間的差別?

1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。

get 和 post只是一種傳遞數(shù)據(jù)的方式,get也可以把數(shù)據(jù)傳到服務(wù)器, 他們的本質(zhì)都是發(fā)送請(qǐng)求和接收結(jié)果。只是組織格式和數(shù)據(jù)量上面有差別, http協(xié)議里面有介紹

2.GET請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中) ,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如: login.action? name=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為該符號(hào)以16進(jìn)制表示的ASCII。

因?yàn)間et設(shè)計(jì)成傳輸小數(shù)據(jù) ,而且最好是不修改服務(wù)器的數(shù)據(jù),所以瀏覽器一般都在地址欄里面可以看到, 但post一般都用來傳遞大數(shù)據(jù),或比較隱私的數(shù)據(jù),所以在地址欄看不到, 能不能看到不是協(xié)議規(guī)定, 是瀏覽器規(guī)定的。

3. 對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值, 對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。

怎么獲得變量和你的服務(wù)器有關(guān),和get或post無(wú)關(guān),服務(wù)器都對(duì)這些請(qǐng)求做了封裝 4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大 ,一般被默認(rèn)為不受限制。

post基本沒有限制,我想大家都上傳過文件,都是用post方式的。只不過要修改 form里面的那個(gè)type參數(shù)

5. get安全性非常低,post安全性較高。

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

application json 與form表單的區(qū)別?

application/json 這個(gè) Content-Type 作為響應(yīng)頭大家肯定不陌生。實(shí)際上, 現(xiàn)在越來越多的人把它作為請(qǐng)求頭,用來告訴服務(wù)端消息主體是序列化后的 JSON 字符串。 由于 JSON規(guī)范的流行,除了低版本 IE 之外的各大瀏覽器都原生支持 JSON.stringify, 服務(wù)端語(yǔ)言也都有處理 JSON 的函數(shù),使用 JSON 不會(huì)遇上什么麻煩。angular中默認(rèn)的就是這個(gè)格式

application/x-www-form-urlencoded 這應(yīng)該是最常見的 POST 提交數(shù)據(jù)的方式了。瀏覽器的原生 form 表單,如果不設(shè)置 enctype 屬性, 那么最終就會(huì)以 application/x-www-form-urlencoded 方式提交數(shù)據(jù)。請(qǐng)求類似于下面這樣 ( 無(wú)關(guān)的請(qǐng)求頭在本文中都省略掉了): POST http://www.example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8 title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3 首先,Content-Type 被指定為 application/x-www-form-urlencoded; 其次,提交的數(shù)據(jù)按照 key1=val1&key2=val2 的方式進(jìn)行編碼,key 和 val都進(jìn)行了 URL 轉(zhuǎn)碼。 大部分服務(wù)端語(yǔ)言都對(duì)這種方 式有很好的支持。例如 PHP 中,$_POST['title'] 可以獲取到 title 的值,$_POST['sub'] 可以得到 sub 數(shù)組。

這兩種方式也是經(jīng)常被互相轉(zhuǎn)換的使用的,一般情況從json轉(zhuǎn)換成form的情況會(huì)相對(duì)多一些。

7.參考文獻(xiàn)

https://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

https://www.zhihu.com/question/51359933?from=profile_question_card

8.更多討論

1 post可以修改數(shù)據(jù)嗎?

答: 按照HTTP規(guī)范來說是不可以的,但是實(shí)際上可以用 post來修改數(shù)據(jù)

2?。纾澹簟『汀。穑铮螅簟≡趯?shí)際應(yīng)用中怎么選擇

答:?。纾澹糁荒芴峤簧倭康臄?shù)據(jù),而post幾乎對(duì)提交的數(shù)據(jù)大小無(wú)限制,所以用post 總是沒錯(cuò)的。

3? ? ?還有哪些其他的提交表頭的方法?

答:? ?multipart/form-data,這又是一個(gè)常見的 POST 數(shù)據(jù)提交的方式。我們使用表單上傳文件時(shí),必須讓 form 的 enctyped 等于這個(gè)值。

鳴謝

感謝大家觀看

BY :聶義中

今天的分享就到這里啦,歡迎大家點(diǎn)贊、轉(zhuǎn)發(fā)、留言、拍磚~

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

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

  • 1.背景介紹 基本概念HTTP:在Web應(yīng)用中,服務(wù)器把網(wǎng)頁(yè)傳給瀏覽器,實(shí)際上就是把網(wǎng)頁(yè)的HTML代碼發(fā)送給瀏覽器...
    楓塵逍遙閱讀 6,835評(píng)論 0 2
  • 一、背景介紹 基本概念 HTTP:在Web應(yīng)用中,服務(wù)器把網(wǎng)頁(yè)傳給瀏覽器,實(shí)際上就是把網(wǎng)頁(yè)的HTML代碼發(fā)送給瀏覽...
    8778188a234f閱讀 3,297評(píng)論 0 7
  • 用一天時(shí)間看完了整本小說,劇是在一年前看的。 先講小說吧,呈現(xiàn)在還留有熱度。 比起之前看的《幻夜》《白夜行》甚至《...
    Mouru閱讀 480評(píng)論 0 0
  • 姓名:王建勛 公司:思沃技術(shù)171期利他2組王建勛 【知-學(xué)習(xí)】 誦《六項(xiàng)精進(jìn)》大綱5遍,共401遍;《大學(xué)》5遍...
    常修閱讀 267評(píng)論 0 0
  • 咦? 在河流中央 為何矗起一座金字塔? 在金字塔的頂端 為何立著一柄權(quán)杖? 美麗的花朵 為何生長(zhǎng)在白色的海洋? 架...
    蟋蟀王閱讀 125評(píng)論 0 0

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