国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

Ajax 入門之 GET 與 POST 的不同處詳解

2024-09-01 08:27:27
字體:
來源:轉載
供稿:網友

在之前的隨筆中,本著懷舊的態度總結了一篇 兼容不同瀏覽器 建立XHR對象的方法:

  在建立好XHR對象之后,客戶端需要做的就是,將數據以某種方式傳遞到服務器,以獲得相應的響應,在這里,  Ajax技術總結的第二季,我將重點闡述 提交數據的兩種方式。

  在這之前需要了解一下我們的HTTP傳輸協議:

HTTP 的工作方式是客戶機與服務器之間的請求-應答協議。

舉例:客戶端(瀏覽器)向服務器提交 HTTP 請求;服務器向客戶端返回響應。響應包含關于請求的狀態信息以及可能被請求的內容。而想要基于HTTP協議進行數據傳輸,必然要用到兩種請求方式.

兩種 HTTP 請求方法:GET 和 POST

在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。

GET - 從指定的資源請求數據。 POST - 向指定的資源提交要被處理的數據

  這是W3C上對GRT與POST的使用場景描述,從字面上來理解,就是: GET是用來從服務器獲取數據的,POST是用來向服務器傳送數據的

這一點,我們從提交路徑與數據的URL中就可以看出來:

  可以用來指向URL的屬性有:

1. 表單中的 action;

2. a 標簽中的 href

3. img script 中的 src 屬性(此屬性不受“ 同源策略 ”限制,可以利用來進行“跨域”,我想近期總結一片關于跨域的問題,在這里先挖個坑)

  這里,我們講一講form表單提交中他們的不同

一 、Ajax的表單提交中,get 使用 open()函數來提交數據,其中,數據以 URL? key & value 的形式拼接在URL后面:

xhr.open('get','xxx.php?name=tom & age=18');xhr.send(null);

  在瀏覽器的URL中是這樣的:

get 提交 URL

這里可以看出:GET是把參數數據隊列加到提交表單的action屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。ID的url長度是有限制的,當url過長時會自動截取超長字符。這樣就容易引發一個問題:當傳遞的參數過多,導致url過長時,url自動截取超長字符,最終傳遞參數部分獲取不到。這也限制了GET傳送的數據大小一般不能超過2KB;

  而且,從URL截圖中可以看出: GET安全性非常低,當通過GET方法提交數據時,用戶名和密碼將出現在URL上。如果:

- 登陸頁面可以被瀏覽器緩存;
- 其他人可以訪問客戶的這臺機器。

那么,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,GET方法會帶來嚴重的安全性問題。

并不是說GET方法沒有優點,在速度測試中,get提交的速度是POST方式的數十倍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深圳市| 大宁县| 崇信县| 蒙自县| 临西县| 杭锦后旗| 扬中市| 尚志市| 浦东新区| 衡水市| 永康市| 西丰县| 雷山县| 永靖县| 北流市| 永胜县| 揭阳市| 武穴市| 广东省| 遂宁市| 湾仔区| 砚山县| 龙州县| 菏泽市| 永安市| 天峻县| 兴文县| 通州区| 清涧县| 彭泽县| 昌江| 西盟| 阳信县| 鱼台县| 长子县| 保定市| 日喀则市| 旬邑县| 日照市| 宕昌县| 田东县|