TTP中get與post的區別

2021-08-17 05:48:51 字數 2321 閱讀 6883

get和post是http與伺服器互動的方式, 

說到方式,其實總共有四種:put,delete,post,get。 

他們的作用分別是對伺服器資源的增,刪,改,查。 

所以,get是獲取資料,post是修改資料。

但是,現在大家都不這麼幹了! 

只用乙個方式就可以做增刪查減的操作。 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

區別分析

get把請求的資料放在url上,即http協議頭上,其格式為: 

以?分割url和傳輸資料,引數之間以&相連。 

資料如果是英文本母/數字,原樣傳送, 

如果是空格,轉換為+, 

如果是中文/其他字元,則直接把字串用base64加密,及「%」加上「字串的16進製制ascii碼」。 

post把資料放在http的包體內(requrest body)。

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

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

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

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

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

get產生的url位址可以被bookmark,而post不可以。

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

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

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

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

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

http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為:乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,

改,增,

刪4個操作。到這裡,大家應該有個大概的了解了,get一般用於

獲取/查詢

資源資訊,而post一般用於

更新資源資訊。

1,http中,get用於資訊獲取,而且是安全的和冪等的。

(1).所謂安全的意味著該操作用於獲取資訊而非修改資訊。換句話說,get 請求一般不應產生***。就是說,它僅僅是獲取資源資訊,就像資料庫查詢一樣,不會修改,增加資料,不會影響資源的狀態。

* 注意:這裡安全的含義僅僅是指是非修改資訊。

(2).冪等的意味著對同一url的多個請求應該返回同樣的結果。

2,http中,post是用於修改伺服器上的資源的請求。

說完原理性的問題,我們從表面上來看看get和post的區別:

1. get是從伺服器上獲取資料,post是向伺服器傳送資料。

get 和 post只是一種傳遞資料的方式,get也可以把資料傳到伺服器,他們的本質都是傳送請求和接收結果。只是組織格式和資料量上面有差別,http協議裡面有介紹

2. get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各個字段與其內容放置在html header內一起傳送到action屬性所指的url位址。使用者看不到這個過程。

因為get設計成傳輸小資料,而且最好是不修改伺服器的資料,所以瀏覽器一般都在位址列裡面可以看到,但post一般都用來傳遞大資料,或比較隱私的資料,所以在位址列看不到,能不能看到不是協議規定,是瀏覽器規定的。

3. 對於get方式,伺服器端用request.querystring獲取變數的值,對於post方式,伺服器端用request.form獲取提交的資料。

沒明白,怎麼獲得變數和你的伺服器有關,和get或post無關,伺服器都對這些請求做了封裝

4. get傳送的資料量較小,不能大於2kb。post傳送的資料量較大,一般被預設為不受限制。但理論上,iis4中最大量為80kb,iis5中為100kb。

post基本沒有限制,我想大家都上傳過檔案,都是用post方式的。只不過要修改form裡面的那個type引數

5. get安全性非常低,post安全性較高。

如果沒有加密,他們安全級別都是一樣的,隨便乙個***都可以把所有的資料監聽到。

JQuery中 post 與 get 區別

1 get訪問 瀏覽器 認為 是等冪的 就是 乙個相同的url 只有乙個結果 相同是指 整個url字串完全匹配 所以 第二次訪問的時候 如果 url字串沒變化 瀏覽器是 直接拿出了第一次訪問的結果 post則 認為是乙個 變動性 訪問 瀏覽器 認為 post的提交 必定是 有改變的 防止 get 的...

http中get與post區別

http有兩部分組成 請求與響應,下面分別整理。在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的 資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之...

HTTP中Get與Post的區別

http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認 為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家...