2011-12-21 64 views
60

Tôi đang làm việc trên một mã cho các dịch vụ Web SOAP, tôi muốn biết các biến thể trong SOAP 1.1, SOAP 1.2, HTTP GET & các phương thức HTTP POST cho Android, và đó là phương thức ưu tiên trong số chúng. Vui lòng tạo một mẫu URL sử dụng hoặc mã của nó.Sự khác biệt giữa các phương thức SOAP 1.1, SOAP 1.2, HTTP GET và HTTP POST cho Android là gì?

Cảm ơn

+0

Dưới đây là một liên kết đến các phần có liên quan thuộc ** W3C chính thức ** _SOAP 1.2 Primer_: [** Thay đổi giữa SOAP 1.1 và SOAP 1.2 **] (https://www.w3.org/TR/soap12-part0/#L4697) – informatik01

Trả lời

75

Sự khác biệt trong các phiên bản SOAP

Cả SOAP Phiên bản 1.1 và SOAP Version 1.2 là Wide Web Consortium (W3C) tiêu chuẩn thế giới. Các dịch vụ Web có thể được triển khai không chỉ hỗ trợ SOAP 1.1 mà còn hỗ trợ SOAP 1.2. Một số thay đổi từ SOAP 1.1 đã được thực hiện cho đặc tả SOAP 1.2 là quan trọng, trong khi các thay đổi khác là nhỏ.

Đặc tả SOAP 1.2 giới thiệu một số thay đổi đối với SOAP 1.1. Thông tin này không nhằm mục đích mô tả chi tiết tất cả các tính năng mới hoặc thay đổi cho SOAP 1.1 và SOAP 1.2. Thay vào đó, thông tin này nêu bật một số khác biệt quan trọng hơn giữa các phiên bản hiện tại của SOAP.

Các thay đổi đối với đặc tả SOAP 1.2 quan trọng bao gồm các cập nhật sau: SOAP 1.1 dựa trên XML 1.0. SOAP 1.2 dựa trên Tập thông tin XML (XML Infoset). Tập thông tin XML (infoset) cung cấp một cách để mô tả tài liệu XML bằng lược đồ XSD. Tuy nhiên, infoset không nhất thiết phải tuần tự hóa tài liệu với serialization XML 1.0 mà dựa trên SOAP 1.1 .. Cách mới này để mô tả tài liệu XML giúp tiết lộ các định dạng tuần tự hóa khác, chẳng hạn như một định dạng giao thức nhị phân. Bạn có thể sử dụng định dạng giao thức nhị phân để nén thông điệp thành định dạng nhỏ gọn, trong đó một số thông tin gắn thẻ tiết có thể không cần thiết.

Trong SOAP 1.2, bạn có thể sử dụng đặc tả của một ràng buộc với giao thức cơ bản để xác định tuần tự hóa XML nào được sử dụng trong các đơn vị dữ liệu giao thức cơ bản. Liên kết HTTP được xác định trong SOAP 1.2 - Phần 2 sử dụng XML 1.0 làm tuần tự hóa thông điệp SOAP.

SOAP 1.2 cung cấp khả năng xác định chính thức các giao thức truyền tải, ngoài việc sử dụng HTTP, miễn là nhà cung cấp tuân theo khung ràng buộc được định nghĩa trong SOAP 1.2. Trong khi HTTP là phổ biến, nó không phải là đáng tin cậy như vận chuyển khác bao gồm TCP/IP và MQ. SOAP 1.2 cung cấp một định nghĩa cụ thể hơn về mô hình xử lý SOAP, loại bỏ nhiều sự mơ hồ có thể dẫn đến các lỗi tương thích trong trường hợp không có các cấu hình Web Services-Interoperability (WS-I). Mục tiêu là giảm đáng kể các cơ hội của các vấn đề tương tác giữa các nhà cung cấp khác nhau sử dụng triển khai SOAP 1.2. SOAP với tệp đính kèm API cho Java (SAAJ) cũng có thể đứng một mình như một cơ chế đơn giản để đưa ra các yêu cầu SOAP. Một thay đổi lớn đối với đặc tả SAAJ là khả năng biểu diễn các thông báo SOAP 1.1 và các thông báo định dạng SOAP 1.2 bổ sung. Ví dụ, SAAJ phiên bản 1.3 giới thiệu một tập hợp các hằng số và phương thức có lợi hơn cho SOAP 1.2 (chẳng hạn như getRole(), getRelay()) trên các phần tử tiêu đề SOAP. Ngoài ra còn có các phương pháp bổ sung trên các nhà máy để SAAJ tạo ra các thông điệp SOAP 1.1 hoặc SOAP thích hợp. Các không gian tên XML cho các lược đồ phong bì và mã hóa đã thay đổi cho SOAP 1.2. Những thay đổi này phân biệt các bộ xử lý SOAP từ các thư SOAP 1.1 và SOAP 1.2 và hỗ trợ các thay đổi trong lược đồ SOAP, mà không ảnh hưởng đến các hiện thực hiện có. Kiến trúc Java cho các dịch vụ Web XML (JAX-WS) giới thiệu khả năng hỗ trợ cả SOAP 1.1 và SOAP 1.2. Bởi vì JAX-RPC đã đưa ra một yêu cầu để thao tác một thông báo SOAP khi nó đi qua thời gian chạy, đã trở thành một nhu cầu biểu diễn thông báo này trong ngữ cảnh SOAP thích hợp của nó. Trong JAX-WS, một số cải tiến bổ sung là kết quả của sự hỗ trợ cho SAAJ 1.3.

Có không difine POST VÀ GET method for android đặc biệt .... nhưng tất cả ở đây là khac nhau

GET Method GET bổ sung các cặp tên/giá trị cho các URL, cho phép bạn truy xuất một tài nguyên đại diện. Vấn đề lớn với điều này là độ dài của một URL bị giới hạn (khoảng 3000 char) dẫn đến mất dữ liệu nếu bạn có nhiều thứ trong biểu mẫu trên trang của bạn, vì vậy phương thức này chỉ hoạt động nếu có một số tham số nhỏ.

Điều này có ý nghĩa gì đối với tôi? Về cơ bản, điều này làm cho phương thức GET vô giá trị đối với hầu hết các nhà phát triển trong hầu hết các tình huống. Đây là một cách khác để xem xét: URL có thể bị cắt bớt (và rất có thể sẽ cung cấp cho các trang web tập trung vào dữ liệu ngày nay) nếu biểu mẫu sử dụng một số lượng lớn thông số hoặc nếu các tham số chứa một lượng lớn dữ liệu. Ngoài ra, các thông số được truyền trên URL được hiển thị trong trường địa chỉ của trình duyệt (YIKES !!!) không phải là nơi tốt nhất cho bất kỳ loại dữ liệu nhạy cảm (hoặc thậm chí không nhạy cảm) nào được hiển thị vì bạn chỉ đang cầu xin người dùng tò mò gây rối với nó.

POST Cách thay thế cho phương thức GET là phương thức POST. Phương thức này gói các cặp tên/giá trị bên trong phần thân của yêu cầu HTTP, làm cho một URL sạch hơn và không áp đặt các giới hạn kích thước trên đầu ra của biểu mẫu, về cơ bản nó không có trí tuệ để sử dụng. POST cũng an toàn hơn nhưng chắc chắn không an toàn. Mặc dù HTTP hỗ trợ đầy đủ CRUD, HTML 4 chỉ hỗ trợ phát hành các yêu cầu GET và POST thông qua các phần tử khác nhau của nó. Giới hạn này đã giữ các ứng dụng web trở lại từ việc sử dụng đầy đủ HTTP, và để làm việc xung quanh nó, hầu hết các ứng dụng quá tải POST để chăm sóc mọi thứ nhưng truy xuất tài nguyên.

Link to original IBM source

+1

Câu trả lời hay !! :) –

+1

Câu trả lời hay! Cảm ơn rất nhiều !! Nghi ngờ rõ ràng !! :) –

+37

Câu trả lời này có thuộc quyền tác giả của IBM hay là vòng khác không? http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/cwbs_soapverdiffs.html – timomeinen

Các vấn đề liên quan