網路系列之GET與POST請求方式的區別

2022-06-09 16:00:08 字數 1505 閱讀 8828

作為一枚正在學習前端的 小萌新,如果下面**有寫的不對的話,可以幫我指出來嗎,謝謝

1.是基於什麼前提的?如果什麼前提都沒有,不使用任何規範,只考慮語法和理論上的http協議

那麼get和post幾乎沒有什麼區別,只有名字不一樣而已。

2.如果是基於rfc規範的。

(1) 理論上的:get和post具有相同語法的,但是有不同的語義。 get是用來獲取資料的,post是用來傳送資料的,其他方面沒有什麼區別。

(2) 實現上的:各種瀏覽器呢,就是實現rfc規範的實現者。

2.1. get的資料在url是可見的。post請求不顯示在url中。

2.2. get傳輸的資料,理論上是沒有限制的,但是真正起到限制的瀏覽器對url的長度進行的限制,

ie:2083個字元  firefox:65,536個字元  safari:80,000個字元  opera:190,000個字元  google chrome:8182個字元      

對於 post,由於不是 url 傳值,理論上是不會受限制的,但是實際上各個伺服器會規定對 post提交資料大小進行限制,apache、iis 都有各自的配置。

2.3. get請求的資料可以收藏為書籤,post請求到的資料不可以收藏為書籤

2.4. get請求後,按後退按鈕,重新整理頁面 無影響,但是post資料會被重新提交。

2.multipart/form-data

4.text/xml

2.6. get歷史引數會被保留在瀏覽器裡,post不會保持在瀏覽器中

2.7. get只允許ascii編碼,post沒有編碼限制

2.8. get比post相對安全,對於小白來說,確實如此,畢竟get 發生的資料都放在url裡面了。post是放在資料體(request)裡面, 如果使用的是http協議傳輸的話,其實他倆都是一樣的,因為http協議,傳輸的資料 都是明文的,所以,去網頁輸入賬號密碼的時候,記得看是http,還是https的。s的比較安全。

在上面說到,在沒有規範的前提下,他倆完全是沒有區別的。都是基於http協議,http的底層是tcp/ip。所以get和post的底層也是tcp/ip,所以他們的底層一樣,那麼要怎麼傳資料,當然也可以設定成一樣。技術上,是完全ojbk的。

get和post還有乙個重大區別,簡單的說:

get只會產生乙個tcp資料報;post會產生兩個tcp資料報。

通俗來說的話:

get請求,瀏覽器會把 請求頭和 資料一起傳送過去,伺服器收到了,就返回資料。

post呢,他是先傳送請求頭,伺服器返回狀態碼100,然後瀏覽器再傳送資料過去,伺服器收到了再返回資料和狀態碼200。

所以看到這裡,有人可能會說,既然 post傳送兩次包, get只傳送一次包,理論上是不是get比較快? 那麼我們是不是可以使用get來代替post請求?

不行滴,因為get 和 post本來自身就有自己的用處,不能隨便混用的。而且,在網路較好的環境下,其實他倆傳送一次和兩次包的時間,幾乎是差不多的。而且對於5g時代來說,更是如此。最後,對

於包的完整,是不是使用post更能保證他的完整性?

網路 Get 請求與 Post 請求的區別

1.get 提交,請求的資料會附在 url之後 就是把資料放置在 協議頭 request line 中 以?分割url和傳輸資料,多個引數用 連線 例如 login.action?name hyddd password idontknow verify e4 bd a0 e5 a5 bd。如果資料是...

GET請求與POST請求 本質

get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。你可能自己寫過無數個get和post請求,或者已經看過很多權威 總結出的他們的區別,你非常清楚知道什麼時候該用什麼...

三 Get請求與Post請求

public static string sendget string url,string param 定義bufferedreader輸入流來讀取url的響應 in new bufferedreader new inputstreamreader connection.getinputstrea...