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請求的資料。安全性個人覺得是沒多大區別的,防君子不防小人就是這個道理。對傳遞的引數進行加密,其實都一樣
詳細請參考以下文章
Get與Post的區別
1.href與action的區別 href只能get引數,action能get引數又能post引數 href一般用於單個連線,可以帶引數 url重寫 是採用get方式請求的,在位址列中可以看到所有的引數 action一樣用於表單的提交 如 註冊 等,他可以提交大量和比較複雜的引數,可通過post和g...
Get 與Post 的區別
get 與post 的區別 表單提交中get和post方式的區別有5點 1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各...
get 與 post 的區別
先簡單的介紹一下 get與 post lget 是以實體的方式得到由請求 uri所指定資源的資訊,如果請求 uri只是乙個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。l post 用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求...