CHƯƠNG 1 CƠ SỞ LÝ THUYẾT CỦA WEB SERVICE
1.2. Các công nghệ nền tảng của Web Service
1.2.2.3. SOAP trong HTTP
Hầu hết dữ liệu truyền trên Internet hiện nay sử dụng giao thức HTTP (HyperText Transfer Protocol). HTTP có mặt ở mọi nơi vì được hỗ trợ bởi một cơ sở hạ tầng lớn cùng với các máy chủ và trình duyệt đã được sử dụng một thời gian dài. Người tạo ra SOAP đã chú ý đến cơ sở hạ tầng này và thiết kế SOAP sao cho mọi thơng điệp có thể được truyền như một phần của thơng điệp HTTP. Điều này là một trong các yếu tố giúp SOAP được chấp nhận rộng rãi và đạt được thành cơng chưa từng có.
Đinh Thị Huyền Trang – K11T3
Hình 1.8: Mơ hình hoạt động của SOAP
Các thơng điệp SOAP cũng có thể được truyền bằng cách sử dụng các giao thức khác như SMTP hay FTP, nhưng SOAP không chỉ ra chi tiết cách sử dụng những giao thức đó.
Các thơng điệp SOAP truyền qua HTTP được đặt trong phần thân của một yêu cầu hoặc phản hồi HTTP. Phần này thường dùng để chứa dữ liệu của biểu mẫu và HTML. HTTP là một giao thức yêu cầu / phản hồi, nghĩa là người gửi sẽ mong muốn có phản hồi (có thể là báo lỗi hoặc dữ liệu) từ người nhận. Các yêu cầu của HTTP là điển hình cho các thơng điệp mà trình duyệt gửi đến một máy chủ Web để yêu cầu một trang web hay gửi một biểu mẫu. Một yêu cầu cho một trang Web thường được tạo ra từ một thông điệp GET của HTTP, trong khi việc gửi một dữ liệu của một “form” thường được thực hiện bằng thông điệp POST.
Hầu hết lưu lượng HTTP là sự kết hợp của các yêu cầu GET của HTTP và các trả lời HTTP. Yêu cầu GET của HTTP xác định trang web được yêu cầu và có thể bao gồm một vài tham số. Một thông điệp trả lời HTTP trả lại trang web đến người yêu cầu trong phần thân thơng điệp đó.
Máy khách SOAP
Chuyển đối thơng điệp SOAP sang kiểu dữ liệu Web
Service sử dụng
Chuyển đổi kết quả sang dạng thông điệp SOAP để gửi
Web Service Yêu cầu SOAP message Trả lời Máy chủ SOAP Kiểu dữ liệu Web Service sử dụng
Đinh Thị Huyền Trang – K11T3
Hình 1.9: Thơng điệp u cầu của SOAP
Mặc dù yêu cầu GET của HTTP rất phù hợp cho việc yêu cầu các trang web nhưng nó khơng có phần thân chứa dữ liệu và do đó khơng thể sử dụng để truyền các thơng điệp SOAP. Trong khi đó, u cầu POST của HTTP có phần thân chứa dữ liệu và rất phù hợp với việc truyền các thông điệp SOAP. Các thông điệp trả lời của HTTP, dù trả lời cho một thơng điệp GET hay POST, đều có cùng định dạng và chứa dữ liệu. Web Service dùng SOAP 1.1 với HTTP luôn sử dụng các thông điệp HTTP POST mà không dùng HTTP GET.
Hình 1.10: Thơng điệp hồi đáp của SOAP POST /string_server/Object17 HTTP/1.1 POST /string_server/Object17 HTTP/1.1 Host: 209.110.197.2 Content-Type: text/xml Content-Length: 152 SOAPMethodName: urn:strings-com:IString#reverse <Envelope> <Header> <t:Transaction xmlns:t=“some-URI mustUnderstand=“1”> 1234 </t:Transaction> </Header> <Body> <m:reverse xmlns:m='urn:strings-com:IString'> <theString>Hello, World</theString> </m:reverse> </Body> </Envelope> Envelope Header Body HTTP Header 200 OK Content-Type: text/xml Content-Length: 162 <Envelope> <Header> </Header> <Body> <m:reverseResponse xmlns:m='urn:strings-com:IString'> <result>Hello World </result>
</m:reverseResponse> </Body>
Đinh Thị Huyền Trang – K11T3