get和post的機(jī)制
瀏覽:55
發(fā)布日期:2023-05-11 00:00:00
投稿人:佚名投稿
1、表單提交中g(shù)et和post方式的區(qū)別
表單提交中g(shù)et和post方式的區(qū)別有5點1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
2.get是把參數(shù)數(shù)據(jù)
隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTPpost機(jī)制,將表單內(nèi)各
個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3.對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5.get安全性非常低,post安全性較高。
HTTP請求:get與post方法的區(qū)別
HTTP
定義了與服務(wù)器交互的不同方法,最基本的方法是 get 和 post。事實上 get 適用于多數(shù)請求,而保留 post僅用于更新站點。根據(jù)
HTTP 規(guī)范,get 用于信息獲取,而且應(yīng)該是安全的和冪等的。所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,get
請求一般不應(yīng)產(chǎn)生副作用。冪等的意味著對同一
URL的多個請求應(yīng)該返回同樣的結(jié)果。完整的定義并不像看起來那樣嚴(yán)格。從根本上講,其目標(biāo)是當(dāng)用戶打開一個鏈接時,她可以確信從自身的角度來看沒有改變
資源。比如,新聞?wù)军c的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認(rèn)為是安全的和冪等的,因為它總是返回當(dāng)前的新聞。反之亦然。
post請求就不那么輕松了。post 表示可能改變服務(wù)器上的資源的請求。仍然以新聞?wù)军c為例,讀者對文章的注解應(yīng)該通過
post請求實現(xiàn),因為在注解提交之后站點已經(jīng)不同了(比方說文章下面出現(xiàn)一條注解);
在FORM提交的時候,如果不指定Method,則默認(rèn)
為get請求,F(xiàn)orm中提交的數(shù)據(jù)將會附加在url之后,以?分開與url分開。字母數(shù)字字符原樣發(fā)送,但空格轉(zhuǎn)換為“+“號,其它符號轉(zhuǎn)換為%XX,
其中XX為該符號以16進(jìn)制表示的ASCII(或ISOLatin-1)值。get請求請?zhí)峤坏臄?shù)據(jù)放置在HTTP請求協(xié)議頭中,而post提交的數(shù)據(jù)則
放在實體數(shù)據(jù)中;
get方式提交的數(shù)據(jù)最多只能有1024字節(jié),而post則沒有此限制。
在表單里使用”post”和”get”有什么區(qū)別
在Form里面,可以使用post也可以使用get。它們都是method的合法取值。但是,post和get方法在使用上至少有兩點不同:
1、get方法通過URL請求來傳遞用戶的輸入。post方法通過另外的形式。
2、get方式的提交你需要用Request.QueryString來取得變量的值,而post方式提交時,你必須通過Request.Form來訪問提交的內(nèi)容。
仔細(xì)研究下面的代碼。你可以運行之來感受一下:
代碼
〈!–兩個Form只有Method屬性不同–〉
〈FORM ACTION=“getpost.asp” METHOD=“get”?
〈INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”〉〈/INPUT〉
〈INPUT TYPE=“submit” VALUE=“Method=get”〉〈/INPUT〉
〈/FORM〉
〈BR〉
〈FORM ACTION=“getpost.asp” METHOD=“post”〉
〈INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”〉〈/INPUT〉
〈INPUT TYPE=“submit” VALUE=“Method=post”〉〈/INPUT〉
〈/FORM〉
〈BR〉
〈BR〉
〈% If Request.QueryString(“Text”) 〈〉 ““ Then %〉
通過get方法傳遞來的字符串是: “〈B〉〈%= Request.QueryString(“Text”) %〉〈/B〉“〈BR〉
〈% End If %〉
〈% If Request.Form(“Text”) 〈〉 ““ Then %〉
通過post方法傳遞來的字符串是: “〈B〉〈%= Request.Form(“Text”) %〉〈/B〉“〈BR〉
〈% End If %〉
說明
把上面的代碼保存為getpost.asp,然后運行,首先測試post方法,這時候,瀏覽器的url并沒有什么變化,返回的結(jié)果是:
通過post方法傳遞來的字符串是: "Hello World"
然后測試用get方法提交,請注意,瀏覽器的url變成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的結(jié)果是:
通過get方法傳遞來的字符串是: "Hello World"
最后再通過post方法提交,瀏覽器的url還是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的結(jié)果變成:
通過get方法傳遞來的字符串是: "Hello World"
通過post方法傳遞來的字符串是: "Hello World"
提示
通過get方法提交數(shù)據(jù),可能會帶來安全性的問題。比如一個登陸頁面。當(dāng)通過get方法提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在URL上。如果:
1、 登陸頁面可以被瀏覽器緩存;
2、 其他人可以訪問客戶的這臺機(jī)器。
那么,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,get方法會帶來嚴(yán)重的安全性問題。
建議
http://www.devdao.com/
在Form中,建議使用post方法。
get與post的區(qū)別2
get:是以實體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個數(shù)據(jù)產(chǎn)生過程,那么最終要在響應(yīng)實體中返回的是處理過程的結(jié)果所指向的資源,而不是處理過程的描述。
post:用來向目的服務(wù)器發(fā)出請求,要求它接受被附在請求后的實體,并把它當(dāng)作請求隊列中請求URI所指定資源的附加新子項,post被設(shè)計成用統(tǒng)一的方法實現(xiàn)下列功能:
1:對現(xiàn)有資源的解釋
2:向電子公告欄、新聞組、郵件列表或類似討論組發(fā)信息。
3:提交數(shù)據(jù)塊
4:通過附加操作來擴(kuò)展數(shù)據(jù)庫
從上面描述可以看出,get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求;而post是向服務(wù)器提交數(shù)據(jù)的一種請求,要提交的數(shù)據(jù)位于信息頭后面的實體中。
很理論化,但是很標(biāo)準(zhǔn),method=“get”并不是從服務(wù)器上獲取數(shù)據(jù),get和post 只是發(fā)送機(jī)制不同,并不是一個取一個發(fā)!
get方法會在IE地址欄里顯示表示你提交時候所帶的值;post方法不會
1、
get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過
HTTPpost機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
2、對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。
3、get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
4、get安全性非常低,post安全性較高。
5、
〈form method="get" action="a.asp?b=b"〉跟〈form
method="get"action="a.asp"〉是一樣的,也就是說,action頁面后邊帶的參數(shù)列表會被忽視;而
〈formmethod="post" action="a.asp?b=b"〉跟〈form
method="post"action="a.asp"〉是不一樣的。
另外,get請求有如下特性:它會將數(shù)據(jù)添加到URL中,通過這種方式傳遞到服務(wù)器,通常利用一個問號?代表URL地址的結(jié)尾與數(shù)據(jù)參數(shù)的開端,后面的參數(shù)每一個數(shù)據(jù)參數(shù)以“名稱=值”的形式出現(xiàn),參數(shù)與參數(shù)之間利用一個連接符&來區(qū)分。
post請求有如下特性:數(shù)據(jù)是放在HTTP主體中的,其組織方式不只一種,有&連接方式,也有分割符方式,可隱藏參數(shù),傳遞大批數(shù)據(jù),比較方便。
post 地址欄不會出現(xiàn)一大串?bjnghfgreygt這樣的東西
如果是get,就會出現(xiàn)了
1、
get 方法通過 URL 請求來傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對的字符串連接,置于 action 屬性所指程序的
url后,如http://www.mdm.com/test.asp?name=asd&passWord=sad,數(shù)據(jù)都會直接顯示在
url 上,就像用戶點擊一個鏈接一樣;post 方法通過 HTTP post 機(jī)制,將表單內(nèi)各字段名稱與其內(nèi)容放置在
HTML表頭(header)內(nèi)一起傳送給服務(wù)器端交由
action屬性能所指的程序處理,該程序會通過標(biāo)準(zhǔn)輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理
2、 get 方式需要使用 Request.QueryString 來取得變量的值;而 post 方式通過 Request.Form 來訪問提交的內(nèi)容
3、
get 方式傳輸?shù)臄?shù)據(jù)量非常小,一般限制在 2 KB 左右,但是執(zhí)行效率卻比 post 方法好;而
post方式傳遞的數(shù)據(jù)量相對較大,它是等待服務(wù)器來讀取數(shù)據(jù),不過也有字節(jié)限制,這是為了避免對服務(wù)器用大量數(shù)據(jù)進(jìn)行惡意攻擊,根據(jù)微軟方面的說法,微
軟對用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)
建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請盡量用 post 方法
4、
get 方式提交數(shù)據(jù),會帶來安全問題,比如一個登陸頁面,通過 get 方式提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在
URL上,如果頁面可以被緩存或者其他人可以訪問客戶這臺機(jī)器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 post
方法;post方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框
1、get是把參數(shù)數(shù)據(jù)隊列加到提交表單的
ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTPpost機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置
在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
2、 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。兩種方式的參數(shù)都可以用Request來獲得。
3、get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
4、get安全性非常低,post安全性較高。
5、
〈form method="get" action="a.asp?b=b"〉跟〈form
method="get"action="a.asp"〉是一樣的,也就是說,action頁面后邊帶的參數(shù)列表會被忽視;而
〈formmethod="post" action="a.asp?b=b"〉跟〈form
method="post"action="a.asp"〉是不一樣的。
一、指代不同
1、get:從指定的資源請求數(shù)據(jù)。
2、post:向指定的資源提交要被處理的數(shù)據(jù)。
二、安全性不同
1、get:GET 的安全性較差,因為所發(fā)送的數(shù)據(jù)是 URL 的一部分。
2、post:POST 比 GET 更安全,因為參數(shù)不會被保存在瀏覽器歷史或 web 服務(wù)器日志中。POST 請求不會被緩存,請求不會保留在瀏覽器歷史記錄中,POST 不能被收藏為書簽,請求對數(shù)據(jù)長度沒有要求。
三、數(shù)據(jù)限制不同
1、get:當(dāng)發(fā)送數(shù)據(jù)時,GET 方法向 URL 添加數(shù)據(jù);URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。
2、post:無限制。
參考資料來源:百度百科-HTTP請求
參考資料來源:百度百科-http
1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。2. get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。 $_GET[\\'提交的變量名\\'],$_POST[\\'提交的變量名\\']
2、html中g(shù)et和post的區(qū)別和使用是什么?
二者區(qū)別和使用分別如下:1、Get 方法通過 URL 請求來傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對的字符串連接,置于 action 屬性所指程序的 url 后,數(shù)據(jù)都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;
Post 方法通過 HTTP post 機(jī)制,將表單內(nèi)各字段名稱與其內(nèi)容放置在 HTML 表頭(header)內(nèi)一起傳送給服務(wù)器端交由 action 屬性能所指的程序處理,該程序會通過標(biāo)準(zhǔn)輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理
3、post和get的區(qū)別是什么?
意思不同。post:n. 崗位;郵件;標(biāo)桿;vt. 張貼;公布;郵遞;布置;vi. 快速行進(jìn)。做動詞的時候是實義動詞。
get:n. 生殖;幼獸;vi. 成為;變得;到達(dá);vt. 使得;獲得;受到;變成。做動詞的時候,可以是實義動詞,也可以是連系動詞,后面接表語,構(gòu)成系表結(jié)構(gòu)。
例如:
Soon they assigned him to a new post. (名詞)
不久, 他們派他到一個新的工作崗位。
The post on the building staggered violently in the wind. (名詞)
樓上的標(biāo)桿在風(fēng)中猛烈的搖晃著。
Post your feedback and tell us what you think. (動詞)
寫下你的意見,并告訴我們你的想法。
The ship was posted missing. (動詞)
已貼出通告宣布該船失蹤。
From whom shall I get comfort? (實義動詞)
我從誰那兒能得到安慰呢?
Only you study hard can you get good results. (實義動詞)
只有肯努力,才能得到好的學(xué)習(xí)成績。
A good friend will visit you in hospital and say “Get well soon ” and leave. (連系動詞)
你的朋友在醫(yī)院看你的時候會說“快點好起來”。 1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
2. get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。
建議:
1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;
2、在做數(shù)據(jù)查詢時,建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用Post方式; 1.首先是"GET方法提交的數(shù)據(jù)最多只能是1024字節(jié);POST是沒有巨細(xì)約束的。
2.在PHP中,能夠用$_GET和$_POST分別獲取GET和POST中的數(shù)據(jù),而$_REQUEST則能夠獲取GET和POST兩種懇求中的數(shù)據(jù)。值得留意的是,JSP中運用request和PHP中運用$_REQUEST都會有隱患。
3.POST的安全性要比GET的安全性高。比方:通過GET提交數(shù)據(jù),用戶名和暗碼將明文出現(xiàn)在URL上,因為(1)登錄頁面有也許被瀏覽器緩存,(2)檢查瀏覽器的歷史紀(jì)錄,那么就能夠拿到賬號和暗碼了,除此之外,運用GET提交數(shù)據(jù)還也許會形成Cross-site
request forgery進(jìn)犯。
總結(jié)一下,Get是向服務(wù)器發(fā)討取數(shù)據(jù)的一種懇求,而Post是向服務(wù)器提交數(shù)據(jù)的一種懇求,在FORM(表單)中,Method默以為"GET",實質(zhì)上,GET和POST僅僅發(fā)送機(jī)制不一樣,并不是一個取一個發(fā)! POST和GET都是向服務(wù)器提交數(shù)據(jù),并且都會從服務(wù)器獲取數(shù)據(jù)。
區(qū)別:
傳送方式:get通過地址欄傳輸,post通過報文傳輸。
傳送長度:get參數(shù)有長度限制(受限于url長度),而post無限制
建議:
1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;
2、在做數(shù)據(jù)查詢時,建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用Post方式;
案例:一般情況下,登錄的時候都是用的POST傳輸,涉及到密碼傳輸,而頁面查詢的時候,如文章id查詢文章,用get 地址欄的鏈接為:article.php?id=11,用post查詢地址欄鏈接為:article.php, 不會將傳輸?shù)臄?shù)據(jù)展現(xiàn)出來。
4、GET和POST有什么區(qū)別
1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。2. get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。
建議:
1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;
2、在做數(shù)據(jù)查詢時,建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用Post方式
5、get和post的區(qū)別是什么?何時使用post?
1. get 是從服務(wù)器上獲取數(shù)據(jù),post 是向服務(wù)器傳送數(shù)據(jù)。 get 請求返回 request - URI 所指出的任意信息。Post 請求用來發(fā)送電子郵件、新聞或發(fā)送能由交互用戶填寫的表格。這是唯一需要在請求中發(fā)送body的請求。使用Post請求時需要在報文首部 Content - Length 字段中指出body的長度。
2. get 是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址,用戶看不到這個過程。
3. 對于 get 方式,服務(wù)器端用Request.QueryString獲取變量的值,對于 post 方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get 傳送的數(shù)據(jù)量較小,不能大于2KB。post 傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。 用IIS過濾器的只接受get參數(shù),所以一般大型搜索引擎都是用get方式。
5. get 安全性非常低,post 安全性相對較高。如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post 為好。
轉(zhuǎn)載請帶上網(wǎng)址:http://yadikedp.com/posji/138245.html
- 上一篇:pos機(jī)坑人嗎
- 下一篇:pos機(jī)60歲
相關(guān)文章推薦
最新推薦
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報,一經(jīng)查實,本站將立刻刪除。