2010-02-22 44 views

Trả lời

43

Chúng không tồn tại bất kỳ trạng thái nào giữa các yêu cầu từ máy khách. nghĩa là dịch vụ không biết và cũng không quan tâm, rằng yêu cầu tiếp theo đến từ khách hàng đã/chưa đưa ra yêu cầu trước đó. Về cơ bản, nó là một 'cung cấp cho tôi thông tin này và quên đi tôi' trong đó đặt các onus trên máy khách để duy trì bất kỳ trạng thái nào.

+1

@mike: quá chữ? – brian

+2

Phiên bản tôi nhận xét ngắn hơn rất nhiều, và về cơ bản đã nói "bởi vì họ không kiên trì". Tôi đang xóa bình luận của tôi cộng với đây là một ý kiến. –

+0

@mike: xấu của tôi. Tôi cũng cảm thấy thế. Đó là lý do tôi cập nhật nó. – brian

2

Yêu cầu độc lập với nhau.

4

Vì HTTP không có trạng thái. Sau khi yêu cầu của khách hàng được thực hiện bởi máy chủ, không có thông tin nào được lưu trữ để sử dụng trong các giao dịch trong tương lai.

16

Vì dịch vụ web dựa trên HTTP, là giao thức không trạng thái.

Trích dẫn wikipedia:

Một máy chủ không quốc tịch là một máy chủ mà xử lý mỗi yêu cầu như một giao dịch độc lập mà không liên quan đến bất kỳ yêu cầu trước .

tức là mỗi yêu cầu độc lập so với trước: ngay cả khi chúng tôi sử dụng một số "thủ thuật", chẳng hạn như cookie để giữ một số trạng thái giữa các yêu cầu.

+7

Có sự khác biệt lớn giữa giao thức không trạng thái và dịch vụ web không quốc tịch. Ứng dụng có thể được stateful (sử dụng "thủ thuật", như bạn đề cập đến) trong khi các giao thức cơ bản là không trạng thái. Ngoài ra, các dịch vụ web không nhất thiết ngụ ý HTTP. Ví dụ: SOAP có thể làm việc với SMTP dưới dạng lớp truyền tải. –

+0

Tôi sẽ ngần ngại gọi một dịch vụ SMTP SOAP là "dịch vụ web". Có rất nhiều loại dịch vụ, nhưng với tôi, dịch vụ web = HTTP hoặc HTTPS. SMTP đã xuất hiện trước web. Vì vậy, tôi nghĩ rằng mối tương quan của Pascal là tốt. – codenheim

4

Khái niệm về serivce web là mô hình hóa RPC (Gọi thủ tục từ xa), còn gọi là Hàm. Vì vậy, bạn không cần phải sử dụng phiên. Ngoài ra, ý tưởng là không quốc tịch xuất phát từ sự cần thiết phải mở rộng các máy chủ web thành một trang trại máy chủ và do đó cho phép khả năng cao hơn.

Tuy nhiên, việc chọn trạng thái sử dụng phụ thuộc vào công nghệ và nhà phát triển. Không có gì để ngăn cản bạn tạo ra một dịch vụ Web ASP.Net và thiết lập "EnableSession = True" trong định nghĩa phương thức.

Điều này có thể hữu ích trong một số trường hợp xác thực cơ bản, tức là xác thực biểu mẫu được phát triển tại nhà hoặc để cung cấp tương quan tự động cho "quy trình làm việc" ngắn ngủi. (Tuy nhiên, tôi khuyến khích bạn xem xét các kỹ thuật hiện đại hơn sẽ cung cấp mức bảo mật và hiệu suất cao hơn).

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