基于Jave的Web服務(wù)工作機(jī)制1_JSP教程
推薦:基于Jave的Web服務(wù)工作機(jī)制2HTTP響應(yīng)(Responses) 和請(qǐng)求類似,一個(gè)HTTP響應(yīng)也包含三個(gè)部分: 協(xié)議狀態(tài) 代碼描敘(Protocol-Status code-Description) 響應(yīng)包頭(Response heade
一個(gè)WEB服務(wù)器也被稱為一個(gè)HTTP服務(wù)器,因?yàn)樗褂肏TTP協(xié)議和它的客戶進(jìn)行通訊,而這些客戶通常是瀏覽器。 一個(gè)基于JAVA的WEB服務(wù)器使用了兩個(gè)重要的類:java.net.Socket和java.net.ServerSocket,并且是通過(guò)HTTP消息進(jìn)行通訊的。本文開頭將討論HTTP和這兩個(gè)類,后面,將解釋一個(gè)簡(jiǎn)單WEB服務(wù)器應(yīng)用程序的工作機(jī)制。
超文本傳輸協(xié)議 (HTTP)
HTTP協(xié)議允許服務(wù)器和客戶機(jī)通過(guò)INTERNET接收和發(fā)送數(shù)據(jù)。它是個(gè)請(qǐng)求和回應(yīng)協(xié)議----客戶機(jī)發(fā)送請(qǐng)求,服務(wù)器對(duì)請(qǐng)求給出回應(yīng)。HTTP 使用可靠的TCP 連接,默認(rèn)TCP端口是80。HTTP的第一版是HTTP/0.9,隨后被 HTTP/1.0所取代。當(dāng)前最新的版本是HTTP/1.1,這個(gè)在RPC2616規(guī)范文檔中給出了定義。
這一章節(jié)簡(jiǎn)單講敘了HTTP 1.1, 對(duì)于你理解WEB服務(wù)器應(yīng)用程序發(fā)送的消息還是足夠的。如果你很感興趣,可以參考RFC 2616文檔。
使用HTTP,客戶端通過(guò)建立一個(gè)連接和發(fā)送一個(gè)HTTP請(qǐng)求來(lái)初始化事務(wù)會(huì)話,服務(wù)器聯(lián)系客戶端或者回應(yīng)一個(gè)callback連接給客戶端。 它們都可以中斷連接。比如,在使用WEB瀏覽器時(shí),你可以點(diǎn)擊瀏覽器上的STOP按鈕來(lái)停止文件下載進(jìn)程,就有效的關(guān)閉了和這個(gè)WEB服務(wù)器的HTTP連接。
HTTP 請(qǐng)求(Requests)
一個(gè)HTTP request包含三個(gè)部分:
方法,URL,協(xié)議/版本(Method-URI-Protocol/Version)
請(qǐng)求包頭Request headers
實(shí)體包(Entity body)
下面給出一個(gè)HTTP請(qǐng)求的范例:
POST /servlet/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/ch8/SendDetails.htm
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
LastName=Franks&FirstName=Michael
請(qǐng)求的第一行就是method-URI-Protocol/Version。
POST /servlet/default.jsp HTTP/1.1
請(qǐng)求的是POST方法,后面的 /servlet/default.jsp 表示一個(gè)URL地址,HTTP/1.1表示協(xié)議的版本。
HTTP標(biāo)準(zhǔn)規(guī)范定義了一些請(qǐng)求方法,用來(lái)給每個(gè)HTTP請(qǐng)求所使用。HTTP 1.1支持7中請(qǐng)求方法: GET, POST, HEAD, OPTIONS, PUT, DELETE, 和 TRACE。 GET和POST 在INTERNET的應(yīng)用程序中是使用最普遍的兩個(gè)方法。
URI完整的指明了一個(gè)INTERNET資源。一個(gè)URI通常是相對(duì)于服務(wù)器的根目錄被解釋的。 因此,它總是使用符號(hào)(/)開頭。一個(gè)URL實(shí)際是一個(gè)URI類型。協(xié)議版本表示當(dāng)前正在使用的HTTP協(xié)議的版本。
請(qǐng)求包頭(request header)包含了一些有用的客戶機(jī)環(huán)境的信息和請(qǐng)求的實(shí)體(entity body)信息。比如,它可以包含瀏覽器使用的語(yǔ)言和實(shí)體的長(zhǎng)度等等。每個(gè)請(qǐng)求包頭都被CRLF(回車換行)序列所分離。
在先前的HTTP請(qǐng)求中,實(shí)體是下面簡(jiǎn)單的一行:
LastName=Franks&FirstName=Michael
在一個(gè)典型的HTTP請(qǐng)求中,這個(gè)實(shí)體能夠很容易地變得更長(zhǎng)。
分享:基于Jave的Web服務(wù)工作機(jī)制3ServerSocket 類 Socket 類表示的是客戶端的socket。無(wú)論什么時(shí)候,只要你想連接到一個(gè)遠(yuǎn)程服務(wù)器的應(yīng)用,你都要構(gòu)建一個(gè)socket。如果你想執(zhí)行一個(gè)服務(wù)器應(yīng)用程序
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- JSP頁(yè)面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- 網(wǎng)站圖片路徑的問(wèn)題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁(yè)上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
- JSP運(yùn)行原理和九大隱式對(duì)象說(shuō)明
- 關(guān)于Jsp頁(yè)面的幾種傳參方式
- 關(guān)于JSP配置文件web.xml加載順序詳解
- JSP中可能會(huì)碰到的問(wèn)題解答
- 基于Jave的Web服務(wù)工作機(jī)制7
- JSP動(dòng)態(tài)網(wǎng)站環(huán)境搭建的詳細(xì)步驟
- 從jsp發(fā)送動(dòng)態(tài)圖像
- Struts初級(jí)教程(2)-避免出現(xiàn)亂碼
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- Tomcat網(wǎng)站發(fā)布配置方案詳細(xì)說(shuō)明
- 相關(guān)鏈接:
- 教程說(shuō)明:
JSP教程-基于Jave的Web服務(wù)工作機(jī)制1
。