| 經(jīng)常聽(tīng)到有人這樣說(shuō),Post比Get更安全,似乎這種想法充滿了整個(gè)網(wǎng)絡(luò),帶給人根深蒂固的影響,但是Post真的比Get更安全么? Http請(qǐng)求方式 Http請(qǐng)求發(fā)送方式常用的就是以下兩種: ① Get機(jī)制 ② Post機(jī)制 Get機(jī)制 Get機(jī)制的限制,比如最大1024字節(jié),這個(gè)略去不表,Get最大的特點(diǎn)是提交時(shí)將參數(shù)通過(guò)url來(lái)發(fā)送。 Post機(jī)制 Post機(jī)制,實(shí)際是將數(shù)據(jù)http的數(shù)據(jù)部分,只不過(guò)不在url里面顯示罷了。 請(qǐng)求舉例 Get機(jī)制 例如:請(qǐng)求這個(gè)url: http://topic.csdn.net/u/20121016/08/2f7960fd-31bd-44ee-bec5-ed297af60039.html?seed=996321166&r=79901963 可以看出這是明顯的get方式,有參數(shù),通過(guò)chome瀏覽器得到   從url里面就可以得到數(shù)值,但是如果是底層的調(diào)用,比如ajax請(qǐng)求,就不會(huì)在瀏覽器的地址欄中有顯示,比如下面的請(qǐng)求:   Post機(jī)制 比如:博客園的登錄請(qǐng)求: http://passport.cnblogs.com/login.aspx?ReturnUrl=http%3a%2f%2fwww.cnblogs.com%2f 通過(guò)瀏覽器得到: 
 可以看到,這是post請(qǐng)求,并且地址欄里是沒(méi)有參數(shù)信息,更沒(méi)有密碼等等信息,但是往下看,沒(méi)錯(cuò),Post請(qǐng)求一樣,是將內(nèi)容以明文的方式在傳輸,以下通過(guò)wireshark截包來(lái)看: 
 數(shù)據(jù)包的發(fā)送,如下:   上圖藍(lán)色部分是Post的數(shù)據(jù)部分,post其實(shí)只是將數(shù)據(jù)寫(xiě)到了http尾部,如此而已。所以此處從安全上來(lái)講,與不顯示的后端ajax的Get請(qǐng)求,其實(shí)在安全性上是一樣的。所以post更安全么,不見(jiàn)得,因?yàn)?/span>post的設(shè)計(jì)之初,本來(lái)就不是為了安全而來(lái)的。 擴(kuò)展一下 Ajax跨域 不讓ajax跨域,這樣就來(lái)得合理了,因?yàn)槿绻试S跨域,那只需要寫(xiě)幾行js代碼,這樣就會(huì)造成重要信息(比如密碼)的泄漏。 Tcp連接個(gè)數(shù) 現(xiàn)代的瀏覽器,為了加快下載(加載)速度,已經(jīng)將RFC文檔里面的”should be at most 2 connections”中的should理解的出神入化,因?yàn)?/span>RFC里面僅僅是should而不是must,所以現(xiàn)代的瀏覽器同時(shí)允許建立的tcp連接一般是超過(guò)2個(gè)tcp連接的。 Tcp協(xié)議 就像上篇TCP連接檢測(cè)里面提到的那樣,“tcp只是數(shù)據(jù)的發(fā)送與接收,包括握手,斷開(kāi)以及rst,time_wait,close_wait 等等。“,Http同樣如果,知道協(xié)議,其實(shí)自己寫(xiě)一個(gè)簡(jiǎn)單的IIS真不費(fèi)力。 最后 前面提到,TCP的連接個(gè)數(shù),說(shuō)到這里突然想到了一個(gè)問(wèn)題,同時(shí)也再深入的擴(kuò)展一下,為什么一臺(tái)機(jī)器connect同一個(gè)IP,port的tcp連接數(shù)不能超過(guò)65535(當(dāng)然實(shí)際65535也是達(dá)不到的)個(gè)呢? 
 答案請(qǐng)看這里《tcp的65535個(gè)連接之迷》 
 
 | 
|  |