資源描述:
《java 高層網(wǎng)絡(luò)編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Java高層網(wǎng)絡(luò)編程基于HTTP的應(yīng)用程序 java.net包中的類和接口提供了可用于低層和高層網(wǎng)絡(luò)編程的API。低層API可以讓你直接訪問網(wǎng)絡(luò)協(xié)議,但是為此你不得不使用低層的TCP套接字和UDP數(shù)據(jù)包。高層的API(如URL,URLConnection和httpURLConnection等類)可以使你更快的開發(fā)網(wǎng)絡(luò)應(yīng)用,卻不需要寫很多代碼?! ×硪黄恼?,《NetworkProgrammingwithJ2SE1.4》會告訴你如何使用低層的套接字進行網(wǎng)絡(luò)編程。這篇文章的重點則放在如何使用java.net包中的高層API開發(fā)基于HTTP的應(yīng)用程序。 這篇文章將有如下內(nèi)容:概覽HTTP概覽
2、java.net包的高層API示例說明如何使用高層API制作一個可以下載股票行情的應(yīng)用程序演示如何提交數(shù)據(jù)到網(wǎng)頁服務(wù)器概覽HTTP的驗證并展示如何保護你的網(wǎng)絡(luò)資源提供代碼實例演示如何執(zhí)行HTTP的驗證概覽HTTP 超文本傳輸協(xié)議(HypertextTransferProtocol,HTTP)是一個“請求-回應(yīng)”的應(yīng)用協(xié)議。這個協(xié)議支持一套固定的方法如GET、POST、PUT、DELETE等。一般用GET方法向服務(wù)器請求資源。這里有兩個GET請求的例子:GET/HTTP/1.1GET/names.htmlHTTP/1.1 另外,你可以使用GET和POST方法向服務(wù)器發(fā)送數(shù)據(jù),它們向服務(wù)器
3、發(fā)送數(shù)據(jù)的方式是不同的:GET方法:輸入的數(shù)據(jù)將作為URL的一部分發(fā)送POST方法:輸入數(shù)據(jù)作為一個獨立的實體發(fā)送 考慮一下下面的HTML表單:窗體頂端Student#:窗體底端 這個表單會提交到http://www.javacourses.com/servlet/getMarks由Servlet處理。該表單使用了GET方法來傳輸信息。如果用戶輸入一個學(xué)號——比如556677——并點擊GetMarks按鈕,表單數(shù)據(jù)就會作為URL的一部分傳送到Servlet中。經(jīng)過編碼之后的URL就是:http://www.javacourses.com/servlets/getMarks?number
4、=556677?! ≡谑褂肞OST方法的情況下,傳輸數(shù)據(jù)時不會將數(shù)據(jù)作為URL的一部分;它們會作為一個獨立的實體來傳輸。因此,POST方法更安全,你也可以用這個方法傳輸更多的數(shù)據(jù)。而且用POST傳輸?shù)臄?shù)據(jù)不一定要是文本,用GET方法傳輸?shù)膮s一定要是文本。消息息格式 請求消息指定了方法名稱(GET或者POST)、URL、協(xié)議版本號、頭部消息和可選消息。頭部消息也許會包含請求信息和客戶端信息,如接受的內(nèi)容類型、瀏覽器名稱以及驗證數(shù)據(jù)。返回消息指定了協(xié)議版本、響應(yīng)代碼和原因。不管執(zhí)行是否成功,響應(yīng)代碼和原因都會報告。一些響應(yīng)代碼如下:200OK:Requestsucceeded.Therequ
5、estedresourcecanbefoundlaterinthismessage.301MovedPermanently:Requestedresourcehasmoved.Newlocationisspecifiedlaterinthismessage.400BadRequest:Requestmessageisnotunderstoodbytheserver.404NotFound:Requesteddocumentisnotfoundonthisserver. 關(guān)于HTTP和所有返回代碼的信息可以在HTTP1.1規(guī)范RFC2616中找到?! ∠旅媸且粋€請求消息由瀏覽器到服務(wù)器的例
6、子。這里請求的URL是http://java.sun.com:GET/HTTP/1.1Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/vnd.ms-powerpoint,application/vnd.ms-excel,application/msword,*/*Accept-Language:en-caAccept-Encoding:gzip,deflateUser-Agent:Mozilla/4.0(compatible;MSIE5.01;Windows98;YComp5.0.0.0)Host:ja
7、va.sun.comConnection:Keep-AliveCookie:SUN_ID=24.80.19.177:28346100732290;SunONEUserId=24.80.19.177:86521021960770 然后這里是服務(wù)器對這個請求的回復(fù)消息:HTTP/1.1200OKServer:Netscape-Enterprise/6.0Date:Mon,14Oct200215:18:04GMTConten