KEMBAR78
Web service | ODP
Web Service
Agenda
●
Http protocol
●
Web Service
●
Example
HTTP 的運作
基本原理與訊息傳遞
 提出要求 / 回應對話溝通
HTTP 的運作
基本原理與訊息傳遞
 陽春的 HTTP/0.9
●
主要是用來傳送超文件 案,因此只支援傳送文字 ,用上述檔 檔
的方式一次傳送一個 HTML 案。檔
●
訊息沒有什麼格式,用戶端只須送出一列 GET 指令並指明檔
案的路徑,在找不到 案時回覆一個檔 HTML 在用戶端顯示檔
錯誤訊息。
●
伺服器與用戶端之間沒有溝通方式
HTTP 的運作
基本原理與訊息傳遞
 強化溝通的 HTTP/1.0
 確定伺服器與瀏覽器間訊息交換的機制,並增加交換資訊的溝通能力。
 詳細定義 Request 及 Response 訊息表頭及內容格式,包含:
( 1 ) Request 與 Response 訊息的使用方式。
( 2 )提供雙方交換資訊的方法 (Method) : GET 、 HEAD 、 POST 等三
個指令,以及 PUT 、 DELETE 、 LINK 、 UNLINK 等四個附加的指令。
( 3 )編列回應狀態碼,讓伺服器能夠詳細回覆處理的情形。
 提供快取功能
 加入在電子郵件上的 MIME (Multipurpose Internet Mail Exchange) 規格,
支援多樣化格式的檔案。
HTTP 的運作
基本原理與訊息傳遞
 強化溝通的 HTTP/1.0
HTTP 的運作
基本原理與訊息傳遞
 普遍的標準 HTTP/1.1
 加強快取 (Cache) 功能
 傳送頻 的控制寬
 改善連線管理機制
 增加摘要式驗證
 狀態管理
 內容協調
HTTP 的運作
快取機制
 下載的資源未變,則不需再從伺服器傳送。
 降低頻寬浪費、網路擁塞及伺服器的負載。
 伺服器網頁的有效期限,提供給瀏覽器判斷是否至快取讀取網頁
。
 Cache control 指令協調雙方執行快取功能。
 Entity 標籤解決時間同步問題,避免快取誤判。
 條件式的要求
- 用戶端以” If-Modified-Since” 訊息提出需求。
- 伺服器端,若網頁未更新:只回應未變更狀態,不回傳網頁。
若網頁已更新:回傳 OK 狀態及網頁內容。
HTTP 的運作
快取機制
 條件式的要求 (Conditional Request)
HTTP 的運作
連線管理機制
 持續性連線
HTTP 的運作
連線管理機制
 多管線傳遞資訊
HTTP 的運作
安全與驗證
 狀態管理 --Cookies(HTTP 協定的延伸規格 )
 瞭解用戶端目前使用服務狀態的關鍵
 Cookies 置於用戶端,伺服器可透過瀏覽器瞭解用戶端目前的狀態
。 ( 例如網路購物的購物車 )
 以 URI 限制伺服器讀取用戶端的 Cookies 內容
 Cookies 內容多為敏感性資料,故隱含有個人私密及安全性問題。
HTTP 的運作
安全與驗證
 摘要式驗證
 HTTP/1.0 的存取控制使用基本驗證 ( 挑戰 / 回應 ) ,但是帳號密碼
在網路傳送卻未加密。
 伺服器對於用戶端的驗證利用每次不同且只使用一次的數值 (nonc
e 值, MD5 格式 )
 使用者輸入帳號密碼後,瀏覽器計算出一個 MD5 值傳回給伺服器
驗證。
 伺服器的 nonce 值隨時間不同,驗證過的用戶端再來存取資源時
,瀏覽器只要重新計算一次 MD5 數值給伺服器,不需要使用者再
輸入帳號密碼。
 不需傳送帳號密碼就能驗證用戶資格
HTTP 的運作
安全與驗證
 摘要式驗證
Web 的進一步探討
網站伺服器 (Web Server)
 管理網頁資源的主機
 將 URL 與本地端檔案系統對應
 執行至少一個網頁伺服器程式與瀏覽器溝通
 網頁伺服器程式接受 HTTP 要求並回應給請求者
 相同溝通語言 (HTTP) 連結不同的伺服器與瀏覽器
 網頁服務軟體: Apache(NCSA 、 Apache 軟體基金會 ) 、 IIS( 微
軟 ) 、 Sun ONE( 昇陽 )… 等。
Web 的進一步探討
網站伺服器 (Web Server)
 管理網頁資源的主機
Web 的進一步探討
網站伺服器 (Web Server)
 虛擬主機
現在的伺服器可以設定多個主機名稱 (Host Name) ,也就是
一部主機若有多個網站,可以分別設為不同的網址,這與 DN
S 通訊協定有關,我們在介紹 DNS 時會詳細說明,目前只要
知道有這麼回事,就像一個人可以有許多外號 稱一樣。因暱
此,以 GET 之後是要讀 個網站的哪 index.htm 案 ?所以檔 呢
HTTP/1.1 在 Request 表頭增加了主機名稱 (HOST) 的欄位
,用來指明是要讀 個網站的 案。哪 檔
Web 的進一步探討
網站伺服器 (Web Server)
 虛擬主機
Web 的進一步探討
代理伺服器
我們在快取機制裡有提到,在需求/回應的訊息交換路徑上,
可能有許多中間的設備轉送訊息,其中一個重要的設備就是代理
伺服器 (Proxy Server) 了,它位在用戶端與伺服器之間,執行
一個稱為代理程式的軟體,且伺服器內配備有相當大的硬 空間碟
做為暫存網頁之用。
Web 的進一步探討
內容散布網路
內容散布網路 (Content Distribution Networks) 是在 1998 年由美國一群研究
生,觀察網際網路流量模式分析後,因應這種需要而誕生的,它是架構在目
前網際網路實體上的一種邏輯性的覆蓋式網路 (Overlay Networks, ONs) 。
Simple Java Web Server
What is Web Service
What is Web Service
Web Service Components
●
Simple Object Access Protocol (SOAP)
●
●
Web Services Description Language
(WSDL)
●
●
Universal Description, Discovery and
Integration (UDDI)
●
Web Service Components
Web Service Components
Web Service Components
應用例子
Web Service 組成架構
轉帳應用
●
服務提供者向目錄服務機構註冊他們所提
供的服務
轉帳應用
●
” ”轉帳 服務要求者向目錄服務機構查詢誰
”有提供 “付款 服務,讓它可完成轉帳功能
轉帳應用
●
” ”轉帳 服務要求者向目錄服務機構查詢誰
”有提供 “存款 服務,讓它可完成轉帳功能
轉帳應用
●
呼叫服務提供者 1&2 執行付款及存款動
作,完成轉帳功能
SOAP Web Service:
Create and Deploy Simple Web Service and Web
Service Client in Eclipse
Java Web Services API
Path
Tomcat
●
%CATALINA_HOME%binstartup.bat
Create the server
Create the server
Creating a Java Project
Creating a Class
Creating a Class
Creating a Web Service
Creating a Web Service
●
http://localhost:8080/WebServiceProject/serv
●
Add a ServiceTest class
Result
Contact
●
E-mail: pinglunliao [at] gmail [dot] com
●
LINE: Holan.Liao
References
●
http://www.dsc.com.tw/newspaper/46/46-1.ht
●

Web service