為什麼用來學習ajax?
因為學習ajax能讓客戶端跟服務端的互動更優雅。
學習ajax有什麼好處?
在沒有ajax之前,客戶端向服務端發起請求,比如需要提交表單資料,可以使用form表單,但是form表單在提交時,會重新整理整個頁面,使用者的體驗極其差!
ajax可以區域性重新整理頁面,無需過載整個頁面,節約資源。
ajax非同步載入,無需經歷同步等待的無奈。
使用ajax技術:
//ajax的使用四個步驟:
1.建立ajax物件 xhr = new xmlhttprequest();
2.建立請求 xhr.open(type,url,boolean) //type請求方式(get or post) url(後台介面) bool(是否非同步 true是非同步,false則同步)
3.傳送請求 xhr.send();
4.監聽狀態碼 xhr.onreadystatechange=function
(){}
//結束
狀態碼xhr.readystate
* 狀態碼 01234*
* 0: 請求還沒有建立
* 1:請求建立了,還沒有進行傳送
* 2:請求正式傳送(xhr.send()執行了)
* 3:請求接收,同時又一部分資料可以使用了(資料並沒有全部處理好)
* 4:請求已經完全受理
get//get方式不需要設定請求頭,資料是跟在url?後面,例如:
'url?name=zhangsan&age=20'
post//post需要設定請求頭(資料格式)
//傳送的資料需要放到send裡
xhr.open("post" , "url");
//設定請求頭
xhr.send(data);
post請求頭的幾種常用資料格式
2.multipart/form-data
這也是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓 form 的 enctype 等於這個值。
這種方式一般用來上傳檔案,各大服務端語言對它也有著良好的支援。上面提到的這兩種 post 資料的方式,都是瀏覽器原生支援的。
用來告訴服務端訊息主體是序列化後的 json 字串。
由於 json 規範的流行,除了低版本 ie 之外的各大瀏覽器都原生支援 json.stringify,服務端語言也都有處理 json 的函式,使用 json 不會遇上什麼麻煩。
4.text/xml
它是一種使用 http 作為傳輸協議,xml 作為編碼方式的遠端呼叫規範
它的使用也很廣泛,能很好的支援已有的 xml-rpc 服務。不過,xml 結構還是過於臃腫,一般場景用 json 會更靈活方便。
get和post有哪些區別?
1.資料量
(1).url不存在引數上限的問題,http協議規範沒有對url長度進行限制。這個限制是特定的瀏覽器及伺服器對它的限制。ie對url長度的限制是2083位元組(2
k+35)。對於其他瀏覽器,如netscape、firefox等,理論上沒有長度限制,其限制取決於作業系統的支援。
(2).post是沒有大小限制的,http協議規範也沒有進行大小限制,起限制作用的是伺服器的處理程式的處理能力。
2.獲取資料和傳送資料
get和post都可以進行資料的獲取和傳送。
3.安全性
其實都不安全
get的資料可以在url裡明文顯示出來,
post的雖然在url裡看不到,但是使用一些工具一樣能看到,所以都不安全
那麼到底使用哪一種方式比較好呢?
這個以跟後端人員商量的結果為準!
通常,查詢或者獲取使用get
方式,因為get獲取時,通常是有個冪等性(冪等通常可以理解為多次操作會得到等效結果的情況。或者不同時間的操作對結果不會有影響。)
而post無法保證冪等,所以需要修改伺服器狀態可以使用post
Python UDP客戶端 服務端
udpclient.py coding utf 8 from socket import servername 127.0.0.1 伺服器位址,本例中使用一台遠端主機 serverport 12000 伺服器指定的埠 clientsocket socket af inet,sock dgram 建立...
python udp客戶端,服務端
客戶端1 建立套接字 2 收發資料 3 關閉套接字 import socket 建立套接字 socket socket.socket socket.af inet,socket.sock dgram 傳送資料 傳送資料的型別必須是位元組型別 data 你猜 encode gbk addr 192.1...
udp服務端 客戶端
個數 2的16次方 埠是資料發出或接收的入口 埠的目的 通過埠號找到對應的程序,完成資料的通訊 著名埠0 1023 這是建立了乙個基於udp協議的服務端 import socket todo 1.0 建立了乙個套接字,用來連線客戶端,傳送與接收資料 udp server socket.socket ...