相信大家在面試的時候經常會被問到: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中。
菜鳥從零學程式設計 GET與POST
相信大家在面試的時候經常會被問到 get與post有什麼區別吧?你是怎麼回答的呢?post比get安全?get有url的長度限制而post沒有或者很大?get通過url或者cookie傳引數,post將資料放到body中?等等.但是這些是它們之間的區別嗎?或者說這些說法對嗎?想知道嗎?那就跟我來吧!...
菜鳥學Java 內部類2
內部類的訪問規則 1,內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用,格式 外部類名.this 2,外部類要訪問內部類,必須建立內部類物件。訪問格式 1,當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中。可以直接建立...
小白學JAVA《十一》 多型
一 概念 相同的行為。不同的實現 二 靜態多型 1.能夠在編譯期間就確定方法被哪乙個物件所執行的過載或重寫 在編譯的時候就知道方法的呼叫 2.使用過載實現 三 動態多型 1.不能夠在編譯期間就確定方法被哪乙個物件所執行的過載或重寫 在後期傳值後才知道方法如何呼叫 2.使用動態繫結和重寫實現 四 動態...