個人認為隨著web2.0從概念走向大量應用,網路應用將變的更加勢不可擋。寫web應用程式有2年多了,以前主要是在學校做一些原型系統,對http協議並沒有深入的研究。最近的應用中需要區分http請求頭中的get,post方法,花了點時間研究了一下,參考的主要資料是http協議的rfc文件,**為http://www.cs.tut.fi/~jkorpela/forms/methods.html。
有網路編成經驗的人都知道,在form的method中,可以使用get,ppost。至於在什麼場合該用什麼,就我自己而言過去沒有仔細斟酌過,都是看一時興致。
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頁面後邊帶的引數列表會被忽視;而跟是不一樣的。
Http 協議請求方法分析
博文摘自 get和post的本質區別是什麼?使用get,form中的資料將編碼到url中,而使用post的form中的資料則在http協議的header中傳輸。在使用上,當且僅當請求冪等 字面意思是請求任意次返回同樣的結果,本質是請求本身不會改變伺服器資料和狀態 時使用get,當請求會改變伺服器資料...
Http請求協議分析
http概述 http hypertext transport protocol 即超文字傳輸協議。這個協議詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則。http就是乙個通訊規則,通訊規則規定了客戶端傳送給伺服器的內容格式,也規定了伺服器傳送給客戶端的內容格式。其實我們要學習的就是這個兩個格...
http協議中資料請求的方法
get和post是什麼?http協議中的兩種傳送請求的方法。http是什麼?http是基於tcp ip的關於資料如何在全球資訊網中如何通訊的協議。其他 http 請求方法 下面的 列出了其他一些 http 請求方法 http的底層是tcp ip。所以get和post的底層也是tcp ip,也就是說,...