国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

基于Jave的Web服務(wù)工作機(jī)制(1)

2024-07-21 02:14:20
字體:
供稿:網(wǎng)友
一個(gè)web服務(wù)器也被稱為一個(gè)http服務(wù)器,因?yàn)樗褂胔ttp協(xié)議和它的客戶進(jìn)行通訊,而這些客戶通常是瀏覽器。 一個(gè)基于java的web服務(wù)器使用了兩個(gè)重要的類:java.net.socket和java.net.serversocket,并且是通過http消息進(jìn)行通訊的。本文開頭將討論http和這兩個(gè)類,后面,將解釋一個(gè)簡(jiǎn)單web服務(wù)器應(yīng)用程序的工作機(jī)制。

  超文本傳輸協(xié)議 (http)

  http協(xié)議允許服務(wù)器和客戶機(jī)通過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,客戶端通過建立一個(gè)連接和發(fā)送一個(gè)http請(qǐng)求來初始化事務(wù)會(huì)話,服務(wù)器聯(lián)系客戶端或者回應(yīng)一個(gè)callback連接給客戶端。 它們都可以中斷連接。比如,在使用web瀏覽器時(shí),你可以點(diǎn)擊瀏覽器上的stop按鈕來停止文件下載進(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)求方法,用來給每個(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)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 资兴市| 梅州市| 古交市| 四子王旗| 自治县| 平远县| 张家川| 千阳县| 浦江县| 巩义市| 营山县| 长宁县| 敖汉旗| 怀远县| 友谊县| 仙居县| 古蔺县| 东乡县| 加查县| 内江市| 汤阴县| 铜川市| 昆山市| 尖扎县| 泰宁县| 天柱县| 当雄县| 双流县| 赤壁市| 昌都县| 龙门县| 方山县| 岳西县| 承德县| 阜阳市| 元江| 中宁县| 呼伦贝尔市| 德化县| 井研县| 凌海市|