Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Hướng dẫn XML

XML TRANG CHỦ Giới thiệu XML XML Cách sử dụng Cây XML pháp XML Các phần tử XML Thuộc tính XML Không gian tên XML Hiển thị XML XML HttpRequest Trình phân tích cú pháp XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Trình xác thực XML XML DTD Lược đồ XML Máy chủ XML Ví dụ XML Câu hỏi XML Chứng chỉ XML

XML AJAX

AJAX Giới thiệu AJAX XMLHttp AJAX Yêu cầu AJAX Phản hồi Tệp XML AJAX PHP AJAX ASP AJAX Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

DOM XML

Giới thiệu DOM Nút DOM DOM Truy cập thông tin nút DOM Danh sách nút DOM DOM Duyệt qua DOM Điều hướng DOM Nhận giá trị DOM Thay đổi nút DOM Xóa nút DOM Thay thế nút DOM Tạo nút DOM Thêm nút DOM Sao chép nút Ví dụ về DOM

Hướng dẫn XPath

Giới thiệu XPath Các nút XPath Cú pháp XPath Trục XPath Toán tử XPath Ví dụ về XPath

Hướng dẫn XSLT

Giới thiệu XSLT Ngôn ngữ XSL XSLT Chuyển đổi XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Áp dụng XSLT trên XSLT máy khách trên máy chủ XSLT Chỉnh sửa XML Ví dụ về XSLT

Hướng dẫn XQuery

Giới thiệu XQuery Ví dụ về XQuery XQuery FLWOR XQuery HTML Thuật ngữ XQuery Cú pháp XQuery XQuery Thêm XQuery Chọn các hàm XQuery

DTD XML

Giới thiệu DTD Các khối xây dựng DTD Các phần tử DTD Thuộc tính DTD Các phần tử DTD và Attr Các thực thể DTD Ví dụ về DTD

Lược đồ XSD

Giới thiệu XSD XSD Cách thực hiện XSD <lược đồ> Phần tử XSD Thuộc tính XSD Hạn chế XSD Phần tử phức tạp XSD XSD XSD rỗng Chỉ phần tử XSD chỉ có văn bản XSD Chỉ báo XSD hỗn hợp XSD <any> XSD <anyAttribution> Ví dụ XSD thay thế XSD

Các kiểu dữ liệu XSD

Chuỗi XSD XSD Ngày/giờ XSD Số XSD Tham chiếu XSD linh tinh

Dịch vụ web

Dịch vụ XML XML WSDL XML SOAP XML RDF XML RSS

Người giới thiệu

Các loại nút DOM DOM Nút DOM NodeList DOM NamedNodeMap Tài liệu DOM Phần tử DOM Thuộc tính DOM DOM Văn bản DOM CDATA DOM Nhận xét DOM XMLHttpRequest Trình phân tích cú pháp DOM Các phần tử XSLT Hàm XSLT/XPath

xà phòng XML


  • SOAP là viết tắt của S imple O object Một giao thức truy cập
  • SOAP là một giao thức truyền thông ứng dụng
  • SOAP là một định dạng để gửi và nhận tin nhắn
  • SOAP độc lập với nền tảng
  • SOAP dựa trên XML
  • SOAP là khuyến nghị của W3C

Tại sao là xà phòng?

Điều quan trọng là các ứng dụng web có thể giao tiếp qua Internet.

Cách tốt nhất để liên lạc giữa các ứng dụng là qua HTTP, vì HTTP được hỗ trợ bởi tất cả các trình duyệt và máy chủ Internet. SOAP được tạo ra để thực hiện điều này.

SOAP cung cấp cách giao tiếp giữa các ứng dụng chạy trên các hệ điều hành khác nhau, với các công nghệ và ngôn ngữ lập trình khác nhau.


Khối xây dựng SOAP

Thông báo SOAP là một tài liệu XML thông thường chứa các phần tử sau:

  • Phần tử Envelope xác định tài liệu XML là thông báo SOAP
  • Phần tử Tiêu đề chứa thông tin tiêu đề
  • Phần tử Nội dung chứa thông tin cuộc gọi và phản hồi
  • Phần tử Lỗi chứa lỗi và thông tin trạng thái

Tất cả các phần tử trên được khai báo trong không gian tên mặc định cho đường bao SOAP:

https://www.w3.org/2003/05/soap-envelope

và không gian tên mặc định cho các kiểu dữ liệu và mã hóa SOAP là:

https://www.w3.org/2003/05/soap-encoding


Quy tắc cú pháp

Dưới đây là một số quy tắc cú pháp quan trọng:

  • Thông báo SOAP PHẢI được mã hóa bằng XML
  • Một thông báo SOAP PHẢI sử dụng không gian tên SOAP Envelope
  • Thông báo SOAP KHÔNG được chứa tham chiếu DTD
  • Thông báo SOAP KHÔNG được chứa Hướng dẫn xử lý XML


Tin nhắn SOAP của bộ xương

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Header>
...
</soap:Header>

<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>

</soap:Envelope>

Phần tử phong bì SOAP

Phần tử Phong bì SOAP được yêu cầu là phần tử gốc của thông báo SOAP. Phần tử này định nghĩa tài liệu XML như một thông báo SOAP.

Ví dụ

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">
  ...
  Message information goes here
  ...
</soap:Envelope>

Không gian tên xmlns:soap

Lưu ý không gian tên xmlns:soap trong ví dụ trên. Nó phải luôn có giá trị: "https://www.w3.org/2003/05/soap-envelope".

Không gian tên xác định Phong bì là Phong bì SOAP.

Nếu sử dụng một không gian tên khác, ứng dụng sẽ phát sinh lỗi và loại bỏ thông báo.


Thuộc tính EncodingStyle

Thuộc tính EncodingStyle được sử dụng để xác định các kiểu dữ liệu được sử dụng trong tài liệu. Thuộc tính này có thể xuất hiện trên bất kỳ phần tử SOAP nào và áp dụng cho nội dung của phần tử đó cũng như tất cả các phần tử con.

Thông báo SOAP không có mã hóa mặc định.

Cú pháp

soap:encodingStyle=" URI "

Ví dụ

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">
  ...
  Message information goes here
  ...
</soap:Envelope>

Phần tử tiêu đề SOAP

Phần tử Tiêu đề SOAP tùy chọn chứa thông tin dành riêng cho ứng dụng (như xác thực, thanh toán, v.v.) về thông báo SOAP.

Nếu có phần tử Header thì nó phải là phần tử con đầu tiên của phần tử Envelope.

Lưu ý: Tất cả các phần tử con trực tiếp của phần tử Header phải đủ tiêu chuẩn về không gian tên.

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Header>
  <m:Trans xmlns:m="https://www.example.com.vn/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

Ví dụ trên chứa tiêu đề có phần tử "Trans", thuộc tính "mustUnderstand" có giá trị là 1 và giá trị là 234.

SOAP xác định ba thuộc tính trong không gian tên mặc định. Các thuộc tính này là: mustUnderstand, diễn viên và EncodingStyle.

Các thuộc tính được xác định trong Tiêu đề SOAP xác định cách người nhận xử lý thông báo SOAP.


Thuộc tính mustUnderstand

Thuộc tính SOAP mustUnderstand có thể được sử dụng để cho biết mục nhập tiêu đề là bắt buộc hay tùy chọn để người nhận xử lý.

Nếu bạn thêm mustUnderstand="1" vào phần tử con của phần tử Tiêu đề thì điều đó cho biết rằng bộ thu xử lý Tiêu đề phải nhận ra phần tử đó. Nếu người nhận không nhận ra phần tử thì nó sẽ thất bại khi xử lý Tiêu đề.

Cú pháp

soap:mustUnderstand="0|1"

Ví dụ

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Header>
  <m:Trans xmlns:m="https://www.example.com.vn/transaction/"
  soap:mustUnderstand="1">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

Thuộc tính diễn viên

Một tin nhắn SOAP có thể di chuyển từ người gửi đến người nhận bằng cách chuyển các điểm cuối khác nhau dọc theo đường dẫn tin nhắn. Tuy nhiên, không phải tất cả các phần của thông báo SOAP đều có thể dành cho điểm cuối cuối cùng, thay vào đó, nó có thể dành cho một hoặc nhiều điểm cuối trên đường dẫn thông báo.

Thuộc tính tác nhân SOAP được sử dụng để định địa chỉ phần tử Tiêu đề tới một điểm cuối cụ thể.

Cú pháp

soap:actor=" URI "

Ví dụ

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Header>
  <m:Trans xmlns:m="https://www.example.com.vn/transaction/"
  soap:actor="https://www.example.com.vn/code/">234
  </m:Trans>
</soap:Header>
...
...
</soap:Envelope>

Thuộc tính EncodingStyle

Thuộc tính EncodingStyle được sử dụng để xác định các kiểu dữ liệu được sử dụng trong tài liệu. Thuộc tính này có thể xuất hiện trên bất kỳ phần tử SOAP nào và nó sẽ áp dụng cho nội dung của phần tử đó cũng như tất cả các phần tử con.

Thông báo SOAP không có mã hóa mặc định.

Cú pháp

soap:encodingStyle=" URI "

Phần tử nội dung SOAP

Phần tử Nội dung SOAP được yêu cầu chứa thông báo SOAP thực tế dành cho điểm cuối cuối cùng của thông báo.

Các phần tử con ngay lập tức của phần tử Nội dung SOAP có thể đủ tiêu chuẩn về không gian tên.

Ví dụ

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Body>
  <m:GetPrice xmlns:m="https://www.example.com.vn/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>

</soap:Envelope>

Ví dụ trên yêu cầu giá táo. Lưu ý rằng các phần tử m:GetPrice và Item ở trên là các phần tử dành riêng cho ứng dụng. Chúng không phải là một phần của không gian tên SOAP.

Phản hồi SOAP có thể trông giống như thế này:

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Body>
  <m:GetPriceResponse xmlns:m="https://www.example.com.vn/prices">
    <m:Price>1.90</m:Price>
  </m:GetPriceResponse>
</soap:Body>

</soap:Envelope>


Phần tử lỗi SOAP

Phần tử SOAP Fault tùy chọn được sử dụng để chỉ ra các thông báo lỗi.

Phần tử SOAP Fault chứa các lỗi và thông tin trạng thái cho một thông báo SOAP.

Nếu có phần tử Lỗi, nó phải xuất hiện dưới dạng phần tử con của phần tử Nội dung. Phần tử Lỗi chỉ có thể xuất hiện một lần trong thông báo SOAP.

Phần tử Lỗi SOAP có các phần tử phụ sau:

Sub Element Description
<faultcode> A code for identifying the fault
<faultstring> A human readable explanation of the fault
<faultactor> Information about who caused the fault to happen
<detail>

Holds application specific error information related to the Body element

Mã lỗi SOAP

Các giá trị mã lỗi được xác định bên dưới phải được sử dụng trong phần tử mã lỗi khi mô tả lỗi:

Error Description
VersionMismatch Found an invalid namespace for the SOAP Envelope element
MustUnderstand An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood
Client The message was incorrectly formed or contained incorrect information
Server There was a problem with the server so the message could not proceed

Giao thức HTTP

HTTP giao tiếp qua TCP/IP. Máy khách HTTP kết nối với máy chủ HTTP bằng TCP. Sau khi thiết lập kết nối, máy khách có thể gửi thông báo yêu cầu HTTP đến máy chủ:

POST /item HTTP/1.1
Host: 189.123.255.239
Content-Type: text/plain
Content-Length: 200

Sau đó, máy chủ xử lý yêu cầu và gửi phản hồi HTTP trở lại máy khách. Phản hồi chứa mã trạng thái cho biết trạng thái của yêu cầu:

200 OK
Content-Type: text/plain
Content-Length: 200

Trong ví dụ trên, máy chủ trả về mã trạng thái là 200. Đây là mã thành công tiêu chuẩn cho HTTP.

Nếu máy chủ không thể giải mã yêu cầu, nó có thể trả về kết quả như thế này:

400 Bad Request
Content-Length: 0

Ràng buộc xà phòng

Đặc tả SOAP xác định cấu trúc của các thông báo SOAP chứ không phải cách chúng được trao đổi. Khoảng trống này được lấp đầy bởi cái được gọi là "Ràng buộc SOAP". Các ràng buộc SOAP là các cơ chế cho phép các thông điệp SOAP được trao đổi một cách hiệu quả bằng cách sử dụng giao thức truyền tải.

Hầu hết việc triển khai SOAP đều cung cấp các ràng buộc cho các giao thức truyền tải phổ biến, chẳng hạn như HTTP hoặc SMTP.

HTTP đồng bộ và được sử dụng rộng rãi. Yêu cầu HTTP SOAP chỉ định ít nhất hai tiêu đề HTTP: Loại nội dung và Độ dài nội dung.

SMTP không đồng bộ và được sử dụng trong trường hợp cuối cùng hoặc trường hợp cụ thể.

Việc triển khai SOAP bằng Java thường cung cấp một ràng buộc cụ thể cho giao thức JMS (Hệ thống nhắn tin Java).


Loại nội dung

Tiêu đề Kiểu nội dung cho yêu cầu và phản hồi SOAP xác định loại MIME cho thông báo và mã hóa ký tự (tùy chọn) được sử dụng cho nội dung XML của yêu cầu hoặc phản hồi.

Cú pháp

Content-Type: MIMEType; charset=character-encoding

Ví dụ

POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8

Thời lượng nội dung

Tiêu đề Độ dài nội dung cho yêu cầu và phản hồi SOAP chỉ định số byte trong nội dung của yêu cầu hoặc phản hồi.

Cú pháp

Content-Length: bytes

Ví dụ

POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250

Một ví dụ về SOAP

Trong ví dụ bên dưới, yêu cầu GetStockprice được gửi đến máy chủ. Yêu cầu có tham số StockName và tham số Price sẽ được trả về trong phản hồi. Không gian tên cho hàm được xác định trong "https://www.example.org/stock".

Một yêu cầu SOAP:

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Body xmlns:m="https://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>

</soap:Envelope>

Phản hồi SOAP:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle="https://www.w3.org/2003/05/soap-encoding">

<soap:Body xmlns:m="https://www.example.org/stock">
  <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
  </m:GetStockPriceResponse>
</soap:Body>

</soap:Envelope>

×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .