GET和POST的區別 面試系列

2021-08-30 11:10:49 字數 1329 閱讀 5253

http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。

1.url可見性:

get,引數url可見

post,url引數不可見

**get把請求的資料放在url上,即http協議頭上,其格式為:以?分割url和傳輸資料,引數之間以&相連;post把資料放在http的包體內(requrest body)

2.傳輸資料的大小:

get一般傳輸資料大小不超過2k-4k

post請求傳輸資料的大小根據php.ini 配置檔案設定,也可以無限大

**get提交的資料最大是2k(原則上url長度無限制,那麼get提交的資料也沒有限制咯?限制實際上取決於瀏覽器,瀏覽器通常都會限制url長度在2k個位元組,即使(大多數)伺服器最多處理64k大小的url,也沒有卵用);

post理論上沒有限制。實際上iis4中最大量為80kb,iis5中為100kb

3.資料傳輸上:

get,通過拼接url進行傳遞引數

post,通過body體傳輸引數

**get產生乙個tcp資料報,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

post產生兩個tcp資料報,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)

4.後退頁面的反應:

get請求頁面後退時,不產生影響

post請求頁面後退時,會重新提交請求

**get在瀏覽器回退時是無影響的,post會再次提交請求

5.快取性:

get請求是可以快取的

post請求不可以快取

**get請求會被瀏覽器主動cache,而post不會,除非手動設定

6.安全性:

都不安全,原則上post肯定要比get安全,畢竟傳輸引數時url不可見,但也擋不住部分人閒的沒事在那抓包玩,瀏覽器還會快取get請求的資料。安全性個人覺得是沒多大區別的,防君子不防小人就是這個道理。對傳遞的引數進行加密,其實都一樣

7.get請求只能進行url編碼,而post支援多種編碼方式

8.get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被保留

9.get只接受ascii字元的引數的資料型別,而post沒有限制

那麼,post那麼好為什麼還用get?get效率高!

面試GET和POST區別?沒啥區別

http是明文協議不安全,https加密 getpsot get瀏覽器回退無害 post會再次請求 get被瀏覽器主動cache post不會 可以設定 引數在url 引數在body 不完全,比post還差 不安全引數長度限制2048 不受限制 ascii 任意 contet type get和po...

get和post區別 面試用

get和post本質上就是tcp鏈結,並無差別。但是由於http的規定和瀏覽器 伺服器的限制,導致他們在應用過程中體現出一些不同。長的說 對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200 返回資料 而對於post,瀏覽器先傳送header,伺服器響應10...

GET 和 POST 的區別(面試用)

get和post是http協議中的兩種傳送請求的方法。http的底層是tcp ip,所以get和post的底層也是tcp ip。即get和post本質上就是tcp鏈結,並無差別。但是由於http的規定和瀏覽器 伺服器的限制,導致他們在應用過程中體現出一些不同。區別 get方法提交的資料會放在url之...