http:是計算機通過網絡進行通信的規(guī)則,去和web服務區(qū)請求信息和服務,是一種無狀態(tài)協(xié)議(不保留持久的連接,沒有記憶)
完整的HTTP請求過程(七步):
1.建立TCP連接
2.web瀏覽器向服務器發(fā)送請求命令
3.Web瀏覽器發(fā)送請求頭信息
4.web服務器應答
5.web服務器發(fā)送應答頭信息
6.web服務器向瀏覽器發(fā)送數據
7.web服務器關閉tcp連接
HTTP請求一般由四部分組成:
1.HTTP請求的方法或動作,比如是GET還是POST請求
2.正在請求的URL,
3.請求頭,包含一些客戶端環(huán)境信息,身份驗證信息等
4.請求體,也就是請求正文,請求正文中可以包含客戶提交的查詢字符串信息,表單信息等等
請求頭和請求體之間有一行空行
GET請求:一般用于信息獲?。ú皇切薷男畔ⅲ糜诓樵儯?/p>
使用url傳遞參數(對于任何人都是可見的,變量名和值都顯示在URL中)
對所發(fā)送信息的數量也有限制,一般在2000個字符
(是默認的請求方法)
(冪等)
POST:一般用于修改服務器上的資源(用來從表單發(fā)送一些數據,并不在URL中顯示,對于其他人是不可見的,變量名和值存在請求體中,如果被工具攔截就另說了)
對所發(fā)送信息的數量無限制
HTTP響應由三部分組成:
1、一個數字和文字組成的狀態(tài)碼,用來顯示請求是成功還是失敗
2.響應頭,響應頭也和請求頭一樣包含許多有用的信息,例如服務器類型,日期時間,內容類型和長度等,
3.響應體,也就是響應正文
HTTP狀態(tài)碼由3為數字構成,其中首位數字定義了狀態(tài)碼的類型:
1XX:信息類,表示收到web瀏覽器請求,正在進一步的處理中
2XX:成功,表示用戶請求被正確接收,理解和處理例如:200 OK
3XX:重定向,表示請求沒成功,客戶必須采取進一步的動作
4XX:客戶端錯誤,表示客戶端提交的請求有錯誤,例如:404 NOT Found,意味著請求中所引用的文檔不存在
5XX:服務器錯誤,表示服務器不能完成對請求的處理:如500
好處:有助于提高WEB應用程序調試的效率和準確性
XMLHttpRequest發(fā)送請求
open(method,url,aysnc)
send(string)
request.open("POST","create.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("name=王二狗&sex=男");
XMLHttpRequest取得響應
responseText:獲得字符串形式的響應數據
responseXML:獲得XML形式的響應數據
status和statusText:以數字和文本形式返回HTTP狀態(tài)碼
getAllResponseHeader():獲取所有的響應報頭
getResponseHeader():查詢響應中的某個字段的值
readyState屬性:
0:請求未初始化,open還沒有調用
1:服務器連接已建立,open已經調用了
2.請求已接收,也就是接收到頭信息了
3.請求處理中。也就是接收到響應主體了
4.請求已完成,且響應已就緒,也就是響應完成了
var request=new XMLHttpRequest();
request.open("GET","get.php",true);
request.send();
request.onreadystatechange=function(){
if(request.readyState == 4 && request.status===200){
//做一些事情 request.responseText
}
}
JSON:javascript對象表示法(javascript Object Notation)
JSON是存儲和交換文本信息的語法,類似xml,它采用鍵值對的方式來組織,易于人們閱讀和編寫,同事也易于機器解析和生成
JSON是獨立于語言的,也就是說不管什么語言,都可以解析json,只需要按照json 的規(guī)則來就行
json與xml比較:
json的長度和xml格式比起來很短小
json讀寫的速度更快
json可以使用javascript內建的方法直接進行解析,轉換成javascript對象,非常方便
JQuery.ajax([settings])
type:類型,'POST'或'GET',默認為'GET'
url:發(fā)送請求的地址
data:是一個對象,連同請求發(fā)送到服務器的數據
dataType:預期服務器返回的數據類型,如果不指定,JQ將自動根據HTTP包MIME信息來智能判斷,一般我們采用json格式,可以設置為‘json’
success:是一個方法,請求成功后的回調函數。傳入返回后的數據,以及包含成功代碼的字符串
error:是一個方法,請求失敗時調用此函數,傳入xmlhttprequest對象