邊城愚人

          如果我不在邊城,我一定是在前往邊城的路上。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            31 隨筆 :: 0 文章 :: 96 評(píng)論 :: 0 Trackbacks

          ??? ??? Web 上最常用的兩種 Http 請(qǐng)求就是 Get 請(qǐng)求和 Post 請(qǐng)求了。我們?cè)谧?/font> java web 開發(fā)時(shí),也總會(huì)在 servlet 中通過 doGet doPost 方法來處理請(qǐng)求;更經(jīng)常地,我們會(huì)在 doGet 方法的實(shí)現(xiàn)中調(diào)用 doPost 方法。盡管做了近兩年的 web 開發(fā),我對(duì)諸如 Get 請(qǐng)求和 Post 請(qǐng)求的基本概念仍不是十分了解。近日閱讀《 javascript 高級(jí)程序設(shè)計(jì)》(很長時(shí)間沒有看書了!),重新整理了一下 Get 請(qǐng)求和 Post 請(qǐng)求的概念,算是讀書筆記吧。

          ??? ??? Get 是從服務(wù)器上獲取數(shù)據(jù),這是最常見的請(qǐng)求類型。每次在瀏覽器中輸入 URL 打開頁面時(shí),就是向服務(wù)器發(fā)送一個(gè) Get 請(qǐng)求。 Get 請(qǐng)求的參數(shù)是用問號(hào)追加到 URL 結(jié)尾,后面跟著用&連接起來的名稱/值對(duì)。比如網(wǎng)址 http://bt.neupioneer.com/viewthread.php?tid=87813 ,其中 tid 為參數(shù)名, 87813 為參數(shù)的值。在編程中,使用 Get 最多的地方就是超鏈接列表,其中的參數(shù)多是從數(shù)據(jù)庫讀出的字段拼接而成。在 Ajax 中,我們也經(jīng)常使用 Get ,通過提取出頁面的標(biāo)簽值,拼成串后構(gòu)造一個(gè) URL Get 在使用上是有限制的, URL 的最大長度為 2KB ,因此,如果表單中包含textarea這樣的大文本段,就不要用Get了。對(duì)于表單來說, Get 是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的 ACTION 屬性所指的 URL 中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),通過 URL 可以看到中傳遞的參數(shù)。因此,相比于 Post ,它是不安全的。

          ??? ??? Post 的使用場合多是在表單提交的地方,因?yàn)楹?/font> Get 相比, Post 可以發(fā)送更多的數(shù)據(jù),《 javascript 高級(jí)程序設(shè)計(jì)》中說最多可以發(fā)送 2GB ,這多少讓我不太相信,網(wǎng)上一些文章說 IIS4 中最大量為 80KB IIS5 中為 100KB ,不知道 Tomcat 中的情況如何。 Post 是通過 HTTP Post 機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在 HTML Header 內(nèi)一起傳送到 ACTION 屬性所指的 URL 地址。 Get 相比, Post 的內(nèi)容是不會(huì)在 URL 中顯現(xiàn)出來的,這多少是安全一些的。 我在做登錄這樣的表單時(shí),只是將請(qǐng)求方式設(shè)為 Post ,使得用戶名和密碼信息不在瀏覽器中顯現(xiàn),但不清楚的是,是否有更好的方法加密密碼等信息(實(shí)在不知道如果請(qǐng)求不傳到服務(wù)器的話,怎么對(duì)未知的請(qǐng)求加密,清楚的朋友不妨給個(gè)解決方案)。在 Ajax 中,如果要和服務(wù)器交互,記得加上 request.setRequestHeader(“Content-Type”,”application/x-www-urlencoded”); 這一腳本,盡管很多 Ajax 教材中都提到了這一點(diǎn)。另外要說的是,被傳遞的參數(shù)是要經(jīng)過編碼的。在 javascript 中,編碼函數(shù)是 encodeURIComponent(xx)

          posted on 2007-05-22 22:30 kafka0102 閱讀(3331) 評(píng)論(3)  編輯  收藏 所屬分類: Ajax

          評(píng)論

          # re: 淺說Get請(qǐng)求和Post請(qǐng)求 2007-05-22 23:30 熱門單曲
          樓主 學(xué)習(xí)了 多謝  回復(fù)  更多評(píng)論
            

          # re: 淺說Get請(qǐng)求和Post請(qǐng)求 2007-05-23 15:23 ronghai
          很好的文章,學(xué)習(xí)了  回復(fù)  更多評(píng)論
            

          # re: 淺說Get請(qǐng)求和Post請(qǐng)求 2007-05-23 18:18 BeanSoft
          可以參考:
          http://www.aygfsteel.com/beansoft/archive/2007/05/23/119444.html
          AJAX入門介紹 - (2) GET 和 POST 配合表單

          encodeURIComponent() 不會(huì)出現(xiàn)亂碼, 別的可能會(huì)丟字母.  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿尔山市| 宜川县| 图们市| 金乡县| 修水县| 嫩江县| 于都县| 静宁县| 灵寿县| 乳山市| 黔南| 汪清县| 淮北市| 剑河县| 鹤庆县| 西安市| 永吉县| 长岛县| 固阳县| 鸡泽县| 琼中| 贵州省| 台山市| 会同县| 济宁市| 荃湾区| 礼泉县| 天柱县| 垫江县| 泗阳县| 新竹市| 高唐县| 安新县| 宜章县| 溆浦县| 邛崃市| 白银市| 乐清市| 临清市| 山东省| 仪陇县|