http://www.webxml.com.cn/ 推薦網站
WebService底層原理
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(8888);
Socket socket= serverSocket.accept();
BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message=reader.readLine();
System.err.println("Client saied "+ message);
reader.close();
socket.close();
serverSocket.close();
}
}
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket=new Socket("10.212.169.93", 8888);
String message="你好啊 服務器";
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(message);
writer.close();
socket.close();
}
}
簡單的網絡應用:
先理解什麼是服務:
大家在寫應用程序查詢數據庫時,並沒有考慮過爲什麼可以將查詢結果返回給上層的應用程序,甚至認爲,這就是數據庫應該做的,其實不然,這是數據庫通過TCP/IP協議與另一個應用程序進行交流的結果,而上層是什麼樣的應用程序,是用什麼語言,數據庫本身並不知道,它只知道接收到了一份協議,這就是SQL92查詢標準協議。
目前的雲計算、雲查殺都是一種服務,現在比較流行的說法是SOA(面向服務的框架)。
既然數據庫可以依據某些標準對外部其他應用程序提供服務、而且不關心對方使用什麼語言,那我們爲什麼就不能實現跨平臺、跨語言的服務呢?
只要我們用Java寫的代碼,可以被任意的語言所調用,我們就實現了跨平臺,跨語言的服務!
複雜的網絡應用:
解決幾個問題?
它能做什麼?
爲什麼要學習WebService?
學習WebService要達到什麼目的?
1:從WebService的工作模式上理解的話,它跟普通的Web程序(比如ASP、JSP等)並沒有本質的區別,都是基於HTTP傳輸協議的程序。
2:WebService所使用的數據均是基於XML格式的。目前標準的WebService在數據格式上主要採用SOAP協議。SOAP協議實際上就是一種基於XML編碼規範的文本協議。
在開始之前必須要讓先了解幾個名詞:
XML,用於傳輸格式化的數據,是Web服務的基礎。
namespace-命名空間。
xmlns=“http://itcast.cn” 使用默認命名空間。
xmlns:itcast=“http://itcast.cn”使用指定名稱的命名空間。
名詞2:WSDL – WebService Description Language – Web服務描述語言。
通過XML形式說明服務在什麼地方-地址。
通過XML形式說明服務提供什麼樣的方法 – 如何調用。
名詞3:SOAP-Simple Object Access Protocol(簡單對象訪問協議)
SOAP作爲一個基於XML語言的協議用於有網上傳輸數據。
SOAP = 在HTTP的基礎上+XML數據。
SOAP是基於HTTP的。
SOAP的組成如下:
Envelope – 必須的部分。以XML的根元素出現。
Headers – 可選的。
Body – 必須的。在body部分,包含要執行的服務器的方法。和發送到服務器的數據。
以下簡單瞭解一個WSDL,SOAP的格式
POST/WebServices/MobileCodeWS.asmxHTTP/1.1
Host:webservice.webxml.com.cn
Content-Type:text/xml; charset=utf-8
Content-Length:length
SOAPAction:"http://WebXml.com.cn/getMobileCodeInfo"
<?xmlversion="1.0" encoding="utf-8"?>
<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getMobileCodeInfoxmlns="http://WebXml.com.cn/">
<mobileCode>string</mobileCode>
<userID>string</userID>
</getMobileCodeInfo>
</soap:Body>
</soap:Envelope>
HTTP/1.1200 OK
Content-Type:text/xml; charset=utf-8
Content-Length:length
<?xmlversion="1.0" encoding="utf-8"?>
<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getMobileCodeInfoResponsexmlns="http://WebXml.com.cn/">
<getMobileCodeInfoResult>string</getMobileCodeInfoResult>
</getMobileCodeInfoResponse>
</soap:Body>
</soap:Envelope>