亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      java

      當前位置:中華考試網(wǎng) >> java >> javaWeb >> 文章內(nèi)容

      總結POST與GET的區(qū)別

      來源:中華考試網(wǎng)  [2020年10月19日]  【

        在B/S應用程序中,前臺與后臺的數(shù)據(jù)交互,都是通過HTML中Form表單完成的。Form提供了兩種數(shù)據(jù)傳輸?shù)姆绞健猤et和post。

        雖然它們都是數(shù)據(jù)的提交方式,但是在實際傳輸時確有很大的不同,并且可能會對數(shù)據(jù)產(chǎn)生嚴重的影響。雖然為了方便的得到變量值,Web容器已經(jīng)屏蔽了二者的一些差異,但是了解二者的差異在以后的編程也會很有幫助的。

        Form中的get和post方法,在數(shù)據(jù)傳輸過程中分別對應了HTTP協(xié)議中的GET和POST方法。二者主要區(qū)別如下:

        1、GET是表單提交,POST是字符串提交

        GET方法通過 URL 請求來傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對的字符串連接,置于 action 屬性所指程序的 url 后,如http://javaxx.com/java/member/index_do.php?fmdo=user&dopost=regnew,數(shù)據(jù)都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;

        Post 方法通過 HTTP post 機制,將表單內(nèi)各字段名稱與其內(nèi)容放置在 HTML 表頭(header)內(nèi)一起傳送給服務器端交由 action 屬性能所指的程序處理,該程序會通過標準輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理

        2、 GET和POST在服務器端取數(shù)據(jù)的方式不同

        ASP.NET中Get 方式需要使用 Request.QueryString 來取得變量的值;而 Post 方式通過 Request.Form 來訪問提交的內(nèi)容 Java Servlet中Get對應doGet方法,POST對應doPost方法。

        3、GET和POST傳輸數(shù)據(jù)長度的限制不同

        Get 方式傳輸?shù)臄?shù)據(jù)量非常小,一般限制在 2 KB 左右,但是執(zhí)行效率卻比 Post 方法好;

        而 Post 方式傳遞的數(shù)據(jù)量相對較大,它是等待服務器來讀取數(shù)據(jù),不過也有字節(jié)限制,這是為了避免對服務器用大量數(shù)據(jù)進行惡意攻擊,根據(jù)微軟方面的說法,微軟對用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)

        建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請盡量用 Post 方法

        4、GET和POST安全問題

        Get 方式提交數(shù)據(jù),會帶來安全問題,因為在傳輸過程,數(shù)據(jù)被放在請求的URL中,而如今現(xiàn)有的很多服務器、代理服務器或者用戶代理都會將請求URL記錄到日志文件中,然后放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。比如一個登陸頁面,通過 Get 方式提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這臺機器,就可以從歷史記錄獲得該用戶的帳號和密碼。

        所以表單提交建議使用 Post 方法;Post的所有操作對用戶來說都是不可見的,Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框

        建議:出于安全性考慮,建議最好使用 Post 提交數(shù)據(jù)

        5、Get限制Form表單的數(shù)據(jù)集的值必須為ASCII字符;而Post支持整個ISO10646字符集。

        6、Get是Form的默認方法。

        7、SOAP是依賴于HTTP POST模式實現(xiàn)的;

        總結

        Get:是以實體的方式得到由請求URI所指定資源的信息,如果請求URI只是一個數(shù)據(jù)產(chǎn)生過程,那么最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。

        Post:用來向目的服務器發(fā)出請求,要求它接受被附在請求后的實體,并把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統(tǒng)一的方法實現(xiàn)下列功能:

        1:對現(xiàn)有資源的解釋

        2:向電子公告欄、新聞組、郵件列表或類似討論組發(fā)信息。

        3:提交數(shù)據(jù)塊

        4:通過附加操作來擴展數(shù)據(jù)庫

        從上面描述可以看出,Get是向服務器發(fā)索取數(shù)據(jù)的一種請求;而Post是向服務器提交數(shù)據(jù)的一種請求,要提交的數(shù)據(jù)位于信息頭后面的實體中。

      責編:fushihao
      • 會計考試
      • 建筑工程
      • 職業(yè)資格
      • 醫(yī)藥考試
      • 外語考試
      • 學歷考試