博文摘自:
get和post的本質區別是什麼?
使用get,form中的資料將編碼到url中,而使用post的form中的資料則在http協議的header中傳輸。在使用上,當且僅當請求冪等(字面意思是請求任意次返回同樣的結果,本質是請求本身不會改變伺服器資料和狀態)時使用get,當請求會改變伺服器資料或狀態時(更新資料,上傳檔案),應該使用post。
區別使用get,post意義何在?
重複訪問使用get方法請求的頁面,瀏覽器會使用快取處理後續請求。使用post方法的form提交時,瀏覽器機遇post將產生永久改變的假設,將讓使用者進行提交確認。當編**員正確的使用get,post後,瀏覽器會給出很好的快取配合,時響應速度更快。
在form提交階段的差別
在伺服器處理部分的差別
原則上,除理get和post請求是沒有分別的。但由於資料通過不同的方法編碼,需要有不同的解碼機制。所以,方法變化將導致處理請求的**變化。比如對於cgi,處理get時通過環境變數獲得引數,處理post請求時則通過標準輸入(stdin) 獲得資料。
從使用經驗,我們有如下總結:
1、get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各個字段與其內容放置在html header內一起傳送到action屬性所指的url位址。使用者看不到這個過程。
2、對於get方式,伺服器端用request.querystring獲取變數的值,對於post方式,伺服器端用request.form獲取提交的資料。兩種方式的引數都可以用request來獲得。
3、get傳送的資料量較小,不能大於2kb。post傳送的資料量較大,一般被預設為不受限制。但理論上,iis4中最大量為80kb,iis5中為100kb。
4、get安全性非常低,post安全性較高。
5、跟是一樣的,也就是說,action頁面後邊帶的引數列表會被忽視;而跟是不一樣的。
序號方法描述1
get請求指定的頁面資訊,並返回實體主體。
2head
類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
3post
向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。
4put
從客戶端向伺服器傳送的資料取代指定的文件的內容。
5delete
請求伺服器刪除指定的頁面。
6connect
http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。
7options
允許客戶端檢視伺服器的效能。
8trace
回顯伺服器收到的請求,主要用於測試或診斷。
9patch
實體中包含乙個表,表中說明與該uri所表示的原內容的區別。
10move
請求伺服器將指定的頁面移至另乙個網路位址。
11copy
請求伺服器將指定的頁面拷貝至另乙個網路位址。
12link
請求伺服器建立鏈結關係。
13unlink
斷開鏈結關係。
14允許客戶端傳送經過封裝的請求。
15extension-mothed
在不改動協議的前提下,可增加另外的方法。
HTTP協議 請求方法
今天筆試選擇題問到http請求方法,一時間想不起來,所以來總結一下。通訊流程 斷開式 無狀態 斷開式 http 協議每次響應完成後,會斷開與客戶端的連線 無狀態 由於伺服器斷開了之前的連線,就無法知曉連線間的關係 內容格式 訊息頭和訊息體 根據 http 標準,http 請求可以使用多種請求方法。h...
http協議請求流程分析
http協議請求流程分析 使用者輸入url 位址鏈結 客戶端獲取到埠及主機名後,客戶端利用dns解析網域名稱,首先客戶端的瀏覽器會先找自身的快取,如果有解析結束,如果沒有客戶端會去找host檔案,如果host檔案沒有的話,客戶端會去找本地的dns快取伺服器,本地的dns快取伺服器沒有的話,快取伺服器...
HTTP協議請求流程分析
一 dns網域名稱解析 使用者輸入乙個url 統一資源定位符 或點選乙個鏈結,這裡以訪問www.baidu.com為例。2 查詢主機的hosts檔案,若hosts檔案中存在直接通過主機訪問。如果不存在 4 本地dns快取伺服器會去尋找 根域 根域不存在具體位址,會返回 com 一級域 5 本地dns...