菜鳥從零學程式設計 GET與POST

2021-09-09 03:04:55 字數 1033 閱讀 8275

相信大家在面試的時候經常會被問到:get與post有什麼區別吧?你是怎麼回答的呢?post比get安全?get有url的長度限制而post沒有或者很大?get通過url或者cookie傳引數,post將資料放到body中?等等... 但是這些是它們之間的區別嗎?或者說這些說法對嗎?想知道嗎?那就跟我來吧!follow me!

安全問題:

有人覺得get方式會把資料寫到url中,這樣資料就暴露了,就不安全了;而post則不會有這樣的情況,所以就安全了。如果這麼想就錯了,get和post都是採用明文傳輸的,隨便用個http擷取工具就能輕鬆獲得傳輸的資訊。所以get和post在這個安全層面沒什麼明顯區別。

如果非要說他們兩個有安全方面的區別,也不是沒有,不過這裡說的安全不是指的上面的那種安全。語義上get是獲取指定url上的資源,是讀操作,重要的一點是不論對某個資源get多少次,它的狀態是不會改變的,在這個意義上,我們說get是安全的(不是被密碼學或者資料保護意義上的安全)。因為get是安全的,所以get返回的內容可以被瀏覽器,cache伺服器快取起來(其中還有很多細節,但不影響這裡的討論)。

而post的語意是對指定資源「追加/新增」資料,所以是不安全的,每次提交的post,參與的**都會認為這個操作會修改操作物件資源的狀態,於是,瀏覽器當你重新整理的時候會跳出確認框,快取伺服器不會快取post請求返回內容。

長度限制:

http協議規範也沒有對url長度進行限制。這個限制是特定的瀏覽器及伺服器對它的限制。ie對url長度的限制是2083位元組(2k+35)。對於其他瀏覽器,如netscape、firefox等,理論上沒有長度限制,其限制取決於作業系統的支援。

理論上講,post也是沒有大小限制的。http協議規範也沒有進行大小限制。起限制作用的是伺服器的處理程式的處理能力。

引數傳遞:

http並沒有要求,post資料就要放在body中。也沒有要求如果是get,資料(引數)就一定要放在url中而不能放在body中。也就是說post也可以放到url中,get也可以放到body中。

菜鳥學Java(十一) GET與POST

相信大家在面試的時候經常會被問到 get與post有什麼區別吧?你是怎麼回答的呢?post比get安全?get有url的長度限制而post沒有或者很大?get通過url或者cookie傳引數,post將資料放到body中?等等.但是這些是它們之間的區別嗎?或者說這些說法對嗎?想知道嗎?那就跟我來吧!...

從零學nginx 安裝nginx

linux2.6以上的版本,因為只有2.6以上的版本才支援epoll,可通過uname a檢視版本 nginx在1.2.x一下的版本是不支援二進位制檔案直接安裝的,所以可能需要使用gcc編譯器對nginx的原始碼進行編譯,安裝指令 yum install y gcc該庫支援正規表示式,如果在ngin...

華為程式設計大賽 菜鳥學演算法

題目是來自華為程式設計大賽 問題描述 判斷包含萬用字元的匹配字串是否完全匹配輸入的字串,匹配字串中包含的 萬用字元僅有 和 且萬用字元不會連續出現 要求完全匹配,而不是包 含 其中,萬用字元 代替 0 個或多個字元,萬用字元 代替乙個字元 要求實現函式 int getmatchsta const c...