1:get訪問 瀏覽器 認為 是等冪的
就是 乙個相同的url 只有乙個結果[相同是指 整個url字串完全匹配]
所以 第二次訪問的時候 如果 url字串沒變化 瀏覽器是 直接拿出了第一次訪問的結果
post則 認為是乙個 變動性 訪問 (瀏覽器 認為 post的提交 必定是 有改變的)
防止 get 的 等冪 訪問 就在url後面加上 ?+new date();,[總之就是使每次訪問的url字串不一樣的]
設計web頁面的時候 也應該遵守這個原則
2:談ajax的get和post的區別
get方式:
用get方式可傳送簡單資料,但大小一般限制在1kb下,資料追加到url中傳送(http的header傳送),也就是說,瀏覽器將各個表單字段元素及其資料按照url引數的格式附加在請求行中的資源路徑後面。另外最重要的一點是,它會被客戶端的瀏覽器快取起來,那麼,別人就可以從瀏覽器的歷史記錄中,讀取到此客戶的資料,比如帳號和密碼等。因此,在某些情況下,get方法會帶來嚴重的安全性問題。
post方式:
當使用post方式時,瀏覽器把各表單字段元素及其資料作為http訊息的實體內容傳送給web伺服器,而不是作為url位址的引數進行傳遞,使用post方式傳遞的資料量要比使用get方式傳送的資料量大的多。
總之,get方式傳送資料量小,處理效率高,安全性低,會被快取,而post反之。
使用get方式需要注意:
1 對於get請求(或凡涉及到url傳遞引數的),被傳遞的引數都要先經encodeuricomponent方法處理.例:var url = "update.php?username=" +encodeuricomponent(username) + "&content=" +encodeuricomponent
(content)+"&id=1" ;
使用post方式需注意:
abc&***=man&age=18以及var name=?abc&***=man&age=18的寫法都是錯誤的;
3.引數在send(引數)方法中傳送,例: xmlhttp.send(name); 如果是get方式,直接 xmlhttp.send(null);
4.伺服器端請求引數區分get與post。如果是get方式則$username = $_get["username"]; 如果是post方式,則$username = $_post["username"];
ajax亂碼問題
產生亂碼的原因:
1、xtmlhttp 返回的資料預設的字元編碼是utf-8,如果客戶端頁面是gb2312或者其它編碼資料就會產生亂碼
2、post方法提交資料預設的字元編碼是utf-8,如果伺服器端是gb2312或其他編碼資料就會產生亂碼
解決辦法有:
1、若客戶端是gb2312編碼,則在伺服器指定輸出流編碼
2、伺服器端和客戶端都使用utf-8編碼
gb2312:header('content-type:text/html;charset=gb2312');
utf8:header('content-type:text/html;charset=utf-8');
注意:如果你已經按上面的方法做了,還是返回亂碼的話,檢查你的方式是否為get,對於get請求(或凡涉及到url傳遞引數的),被傳遞的引數都要先經 encodeuricomponent方法處理.如果沒有用encodeuricomponent處理的話,也會產生亂碼.
原文**指令碼之家《jquery ajax post與get之間的區別》
jquery AJAX中get與POST方式的不同
1 get訪問 瀏覽器 認為 是等冪的,就是 乙個相同的url 只有乙個結果,相同是指 整個url字串完全匹配,所以 第二次訪問的時候,如果 url字串沒變化,瀏覽器是 直接拿出了第一次訪問的結果。post則 認為是乙個 變動性 訪問 瀏覽器 認為 post的提交 必定是 有改變的 防止 get 的...
http中get與post區別
http有兩部分組成 請求與響應,下面分別整理。在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的 資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之...
django中GET與POST請求
view.py中定義 from django.http import httpresponse從request中取值的兩種形式 urls.py檔案中的新增路徑 from django.conf.urls import url from django.contrib import admin from...