1樓:匿名使用者
http/1.1 協議規定的 http 請求方法有 options、get、head、post、put、delete、trace、connect 這幾種。其中 post 一般用來向服務端提交資料,本文主要討論 post 提交資料的幾種方式。
我們知道,http 協議是以 ascii 碼傳輸,建立在 tcp/ip 協議之上的應用層規範。規範把 http 請求分為三個部分:狀態行、請求頭、訊息主體。類似於下面這樣:
協議規定 post 提交的資料必須放在訊息主體(entity-body)中,但協議並沒有規定資料必須使用什麼編碼方式。實際上,開發者完全可以自己決定訊息主體的格式,只要最後傳送的 http 請求滿足上面的格式就可以。
但是,資料傳送出去,還要服務端解析成功才有意義。一般服務端語言如 php、python 等,以及它們的 ramework,都內建了自動解析常見資料格式的功能。服務端通常是根據請求頭(headers)中的 content-type
欄位來獲知請求中的訊息主體是用何種方式編碼,再對主體進行解析。所以說到 post 提交資料方案,包含了 content-type
和訊息主體編碼方式兩部分。下面就正式開始介紹它們。
2樓:布爸的成長
post封裝了url-encoded過的資料,在伺服器端cgi程式設計時,通過stdin的標準輸入讀取資料的。
jquery的post提交方式為什麼要序列化,而get提交方式就不用?序列化做了什麼?
3樓:網海1書生
這是因為後臺能夠直接處理的資料格式,是一種經過序列化的鍵值對資料,比如前端要向後臺提交三個引數,分別是a=1,b=2,c=3,那麼後臺接收到的資料就應該是a=1&b=2&c=3(可以看到其實就是每個「鍵值對」之間用&連線)。當我們用get方式提交資料時,引數是直接附加到url後面的,即
***.***這是域名此略.***?a=1&b=2&c=3
可以看到?後面的正是後臺程式能夠直接處理的資料格式,所以get方式提交資料的話,就不需要再對引數進行序列化處理了,直接提交即可。
而當我們用post方式提交時,通常我們提交的資料本身就是一個json物件,比如說像這樣的:
var data = ;
而提交時資料是直接以原始格式儲存在body中而不是以鍵值對的方式附加到url中的,所以後臺程式是無法直接識別的,這時候就需要在提交前先把data轉換為 a=1&b=2&c=3 的格式再提交,這就是序列化。
當然,如果資料是通過表單提交的,那麼不管是post方式還是get,瀏覽器會自動進行序列化,無需前端js再做任何處理。
表單的提交有兩種方式:get和post,這兩種方式的區別是什麼?
4樓:小風愛廚房
1、資料回去方式不同:
get是從伺服器上獲取資料,post是向伺服器傳送資料。
2、使用者看到過程不同:
get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個欄位一一對應,在url中可以看到。
post是通過httppost機制,將表單內各個欄位與其內容放置在html header內一起傳送到action屬性所指的url地址。使用者看不到這個過程。
3、伺服器端回去方式不同:
對於get方式,伺服器端用request.querystring獲取變數的值。
對於post方式,伺服器端用request.form獲取提交的資料。
4、傳送大小不同:
get傳送的資料量較小,不能大於2kb。
post傳送的資料量較大,一般被預設為不受限制。但理論上,iis4中最大量為80kb,iis5中為100kb。
5、安全性不同:
get安全性非常低。
post安全性較高。
5樓:匿名使用者
一、指代不同
1、get:從指定的資源請求資料。
2、post:向指定的資源提交要被處理的資料
二、規則不同
1、get: 請求可被快取; 請求保留在瀏覽器歷史記錄中; 請求可被收藏為書籤;請求不應在處理敏感資料時使用; 請求有長度限制; 請求只應當用於取回資料。
2、post:請求不會被快取; 請求不會保留在瀏覽器歷史記錄中; 不能被收藏為書籤; 請求對資料長度沒有要求。
三、資料要求不同
1、get:當傳送資料時,get 方法向 url 新增資料;url 的長度是受限制的(url 的最大長度是 2048 個字元)。與 post 相比,get 的安全性較差,因為所傳送的資料是 url 的一部分。
2、post:傳送資料無限制。post 比 get 更安全,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中。
6樓:綠水芙蓉衣
get提交給目標地址後,可以在瀏覽器的位址列看到提交的引數,就是問號後面那串
比如 a.php?id=3&type=1
post提交給目標地址後,瀏覽器位址列裡看不到提交的引數,因而比get方法安全,一般登入時候的密碼等資訊都需要post提交。
另外,get提交的引數有長度限制,post沒有
7樓:
get 將表單資料附加到請求頁面的url地址後面。get方法用來傳送少量資料, url的長度限制在8192個字元以內。如果傳送的資料量太大,資料將被截斷,從而導致意外的處理結果。
post 在http請求中嵌入表單資料。post方法可用來傳送大量資料,而且對於使用者名稱、密碼和信用卡等機密資訊的傳送,post方法比get方法更安全。
求救表單通過php提交資料到mysql中文亂碼
1 頁面 裡面要設定charset utf 82 儲存頁面檔案時要編碼格式為utf 8 3 資料庫有關的表 欄位 的編碼為utf8 general ci還不對的話,看下面。我是這樣解決的 dbh new pdo mysql host localhost dbname test root dbh ex...
ajax請求的時候get 和post方式的區別
安徽電信網上營業廳 首先看一下get post的區別 1 get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個欄位一一對應,在url中可以看到。post是通過http post機制,將表單內各個欄位與其內容放置在html header內一起傳送到action屬性所指的u...
演員的臺詞功底可以通過哪些方式來進行評價
我簡單總結一個最接近可以量化的標準吧。因為是說 功底 所以只說基本功的問題。套用 幽遊白書 的妖怪等級體系的話,這些基本功都練好了就能達到a級臺詞水平。但是我們都知道,a級上面還有s級,而且兩個妖怪即便同為s級,也可以能力相差十萬八千里 統稱為s級是因為對於普羅大眾而言他們的能力都是凡人不可企及的。...