SlideShare una empresa de Scribd logo
1 de 50
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
●

Más contenido relacionado

Destacado

WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIRajkattamuri
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Justin Lin
 
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...ecosio GmbH
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 

Destacado (11)

WSDL 2.0 and Apache Woden
WSDL 2.0 and Apache WodenWSDL 2.0 and Apache Woden
WSDL 2.0 and Apache Woden
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
 
Web services uddi
Web services uddiWeb services uddi
Web services uddi
 
WSDL
WSDLWSDL
WSDL
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
 
Web Services
Web ServicesWeb Services
Web Services
 
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
Introduction to Service Oriented Architectures, SOAP/WSDL Web Services and RE...
 
SOAP-based Web Services
SOAP-based Web ServicesSOAP-based Web Services
SOAP-based Web Services
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 

Similar a Web service

Re Introduce Web Development
Re Introduce Web DevelopmentRe Introduce Web Development
Re Introduce Web Developmentfinian lau
 
Res tful api design tw-2.0
Res tful api design tw-2.0Res tful api design tw-2.0
Res tful api design tw-2.0昀陞 李
 
Web开发基础
Web开发基础Web开发基础
Web开发基础dynaturtle
 
Python HTTP
Python HTTPPython HTTP
Python HTTPYao Zuo
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见mysqlops
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计notes4mark
 
Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Gelis Wu
 
第一章解答
第一章解答第一章解答
第一章解答jiannrong
 
計算機概論New
計算機概論New計算機概論New
計算機概論New曲肯 余
 
計算機概論 (2)有音樂
計算機概論 (2)有音樂計算機概論 (2)有音樂
計算機概論 (2)有音樂曲肯 余
 
計算機概論 (2)
計算機概論 (2)計算機概論 (2)
計算機概論 (2)曲肯 余
 
2015.07.15 新人報告(1)
2015.07.15 新人報告(1)2015.07.15 新人報告(1)
2015.07.15 新人報告(1)Chih-Wei Chuang
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见CFC4N CHEN
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎Will Huang
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0qianshi
 
RFC2616 HTTP/1.1 Reading Notes
RFC2616 HTTP/1.1 Reading NotesRFC2616 HTTP/1.1 Reading Notes
RFC2616 HTTP/1.1 Reading NotesGreen Wang
 
Web Service&Soa&Esb入门介绍
Web Service&Soa&Esb入门介绍Web Service&Soa&Esb入门介绍
Web Service&Soa&Esb入门介绍yiditushe
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Justin Lin
 

Similar a Web service (20)

Intro to REST
Intro to RESTIntro to REST
Intro to REST
 
Intro to rest
Intro to restIntro to rest
Intro to rest
 
Re Introduce Web Development
Re Introduce Web DevelopmentRe Introduce Web Development
Re Introduce Web Development
 
Res tful api design tw-2.0
Res tful api design tw-2.0Res tful api design tw-2.0
Res tful api design tw-2.0
 
Web开发基础
Web开发基础Web开发基础
Web开发基础
 
Python HTTP
Python HTTPPython HTTP
Python HTTP
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计
 
Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介
 
第一章解答
第一章解答第一章解答
第一章解答
 
計算機概論New
計算機概論New計算機概論New
計算機概論New
 
計算機概論 (2)有音樂
計算機概論 (2)有音樂計算機概論 (2)有音樂
計算機概論 (2)有音樂
 
計算機概論 (2)
計算機概論 (2)計算機概論 (2)
計算機概論 (2)
 
2015.07.15 新人報告(1)
2015.07.15 新人報告(1)2015.07.15 新人報告(1)
2015.07.15 新人報告(1)
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
 
RFC2616 HTTP/1.1 Reading Notes
RFC2616 HTTP/1.1 Reading NotesRFC2616 HTTP/1.1 Reading Notes
RFC2616 HTTP/1.1 Reading Notes
 
Web Service&Soa&Esb入门介绍
Web Service&Soa&Esb入门介绍Web Service&Soa&Esb入门介绍
Web Service&Soa&Esb入门介绍
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 

Más de PingLun Liao

深入探討 C 語言
深入探討 C 語言深入探討 C 語言
深入探討 C 語言PingLun Liao
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹PingLun Liao
 
給沒有程式設計經驗的人
給沒有程式設計經驗的人給沒有程式設計經驗的人
給沒有程式設計經驗的人PingLun Liao
 
Perl For Bioinformatics
Perl For BioinformaticsPerl For Bioinformatics
Perl For BioinformaticsPingLun Liao
 
C 檔案輸入與輸出
C 檔案輸入與輸出C 檔案輸入與輸出
C 檔案輸入與輸出PingLun Liao
 
Win32 視窗程式設計基礎
Win32 視窗程式設計基礎Win32 視窗程式設計基礎
Win32 視窗程式設計基礎PingLun Liao
 
Matlab 在機率與統計的應用
Matlab 在機率與統計的應用Matlab 在機率與統計的應用
Matlab 在機率與統計的應用PingLun Liao
 
Android 2D 遊戲設計基礎
Android 2D 遊戲設計基礎Android 2D 遊戲設計基礎
Android 2D 遊戲設計基礎PingLun Liao
 
Android 介面設計
Android 介面設計Android 介面設計
Android 介面設計PingLun Liao
 
Java 視窗程式設計
Java 視窗程式設計Java 視窗程式設計
Java 視窗程式設計PingLun Liao
 
Android introduction
Android introductionAndroid introduction
Android introductionPingLun Liao
 
Generic Programming
Generic ProgrammingGeneric Programming
Generic ProgrammingPingLun Liao
 
Object-Oriented Programming
Object-Oriented ProgrammingObject-Oriented Programming
Object-Oriented ProgrammingPingLun Liao
 
Object-Based Programming Part II
Object-Based Programming Part IIObject-Based Programming Part II
Object-Based Programming Part IIPingLun Liao
 

Más de PingLun Liao (20)

深入探討 C 語言
深入探討 C 語言深入探討 C 語言
深入探討 C 語言
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
給沒有程式設計經驗的人
給沒有程式設計經驗的人給沒有程式設計經驗的人
給沒有程式設計經驗的人
 
陣列與指標
陣列與指標陣列與指標
陣列與指標
 
Perl For Bioinformatics
Perl For BioinformaticsPerl For Bioinformatics
Perl For Bioinformatics
 
C++ STL 概觀
C++ STL 概觀C++ STL 概觀
C++ STL 概觀
 
C++ Function
C++ FunctionC++ Function
C++ Function
 
C 檔案輸入與輸出
C 檔案輸入與輸出C 檔案輸入與輸出
C 檔案輸入與輸出
 
Win32 視窗程式設計基礎
Win32 視窗程式設計基礎Win32 視窗程式設計基礎
Win32 視窗程式設計基礎
 
Matlab 在機率與統計的應用
Matlab 在機率與統計的應用Matlab 在機率與統計的應用
Matlab 在機率與統計的應用
 
Android 2D 遊戲設計基礎
Android 2D 遊戲設計基礎Android 2D 遊戲設計基礎
Android 2D 遊戲設計基礎
 
Android 介面設計
Android 介面設計Android 介面設計
Android 介面設計
 
Java 視窗程式設計
Java 視窗程式設計Java 視窗程式設計
Java 視窗程式設計
 
Java 網路程式
Java 網路程式Java 網路程式
Java 網路程式
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
RESTful
RESTfulRESTful
RESTful
 
How toprogram
How toprogramHow toprogram
How toprogram
 
Generic Programming
Generic ProgrammingGeneric Programming
Generic Programming
 
Object-Oriented Programming
Object-Oriented ProgrammingObject-Oriented Programming
Object-Oriented Programming
 
Object-Based Programming Part II
Object-Based Programming Part IIObject-Based Programming Part II
Object-Based Programming Part II
 

Web service