Stateless là gì? Stateful là gì?

stateful services | Multicontents

Một giao thức stateless là một giao thức truyền thông , trong đó người nhận không phải giữ lại phiên nhà nước từ yêu cầu trước đó. Người gửi chuyển trạng thái phiên có liên quan đến người nhận theo cách mà mọi yêu cầu có thể được hiểu một cách riêng biệt, tức là không tham chiếu đến trạng thái phiên từ các yêu cầu trước đó mà người nhận lưu giữ. Cùng chúng tôi tìm hiểu rõ hơn nhé.

Stateless

Stateless là gì? Stateful là gì?
Stateless and Stateful Application

Trong lập trình web, chúng ta có sự tương tác giữa client với server. Phần mềm gồm 2 thành phần chính: phần mềm và data.

Như vậy, một phần mềm được thiết kế theo tương tác client – server thì phần nhiều tập lệnh sẽ nằm phía server. Client có nhiệm vụ gửi dữ liệu lên để xử lý sau đó nhận kết quả trả về. Vậy stateful vs stateless là gì?

Để hiểu khái niệm stateful vs stateless là gì chúng ta cần phải biết rằng, Stateless là thiết kế không lưu dữ liệu của client trên server. Có nghĩa là sau khi client gửi dữ liệu lên server, server thực thi xong, trả kết quả thì “quan hệ” giữa client và server bị “cắt đứt” – server không lưu bất cứ dữ liệu gì của client. Như vậy, khái niệm “trạng thái” ở đây được hiểu là dữ liệu.

Stateful

Stateful là một thiết kế ngược lại, chúng ta cần server lưu dữ liệu của client, điều đó đồng nghĩa với việc ràng buộc giữa client và server vẫn được giữ sau mỗi request (yêu cầu) của client. Data được lưu lại phía server có thể làm input parameters cho lần kế tiếp.

Theo Wiki:

Staleful và stateless là những tính từ mô tả máy tính hoặc chương trình máy tính được thiết kế để ghi chú và ghi nhớ một hoặc nhiều sự kiện trước đó trong một chuỗi tương tác nhất định với người dùng, máy tính hoặc chương trình khác, thiết bị hoặc yếu tố bên ngoài khác.

Staleful có nghĩa là máy tính hoặc chương trình theo dõi trạng thái tương tác, thường bằng cách đặt các giá trị trong trường lưu trữ được chỉ định cho mục đích đó. Không trạng thái có nghĩa là không có hồ sơ về các tương tác trước đó và mỗi yêu cầu tương tác phải được xử lý hoàn toàn dựa trên thông tin đi kèm với nó.

Staleful stateless bắt nguồn từ việc sử dụng trạng thái như một tập hợp các điều kiện tại một thời điểm.

Stateful and stateless design | Multicontents
Server maintains client-specific state. Shorter requests. Better performance in processing requests. Cache coherence possible. Server can know who’s accessing what. File locking possible. Server maintains no information on client accesses. Each request must identify file and offsets. Server can crash and recover. No state to lose. No open/close needed. They only establish state. No server space used for state. Don’t worry about supporting many clients. Problems if file is deleted on server. File locking not possible. Paul Krzyzanowski, CS 417 Distributed Systems, Rutgers, Fall

Ví dụ về Stateless

Giao thức cơ bản của Internet, Giao thức Internet (IP), là một ví dụ về tương tác stateless.

Mỗi  gói di chuyển hoàn toàn theo cách riêng của nó mà không cần tham chiếu đến bất kỳ gói nào khác.

Khi bạn yêu cầu một trang Web từ một trang Web, yêu cầu truyền đi trong một hoặc nhiều gói, mỗi gói độc lập với nhau theo liên quan của chương trình Giao thức Internet.G

Giao thức kiểm soát truyền tải lớp trên – TCP – thực sự liên hệ các gói với nhau, nhưng sử dụng thông tin bên trong gói chứ không phải một số thông tin bên ngoài để thực hiện việc này.

Thuật ngữ không kết nối cũng được sử dụng để mô tả giao tiếp trong đó kết nối được thực hiện và chấm dứt cho mỗi tin nhắn được gửi đi. IP là không kết nối cũng như không trạng thái.

Giao thức truyền siêu văn bản (HTTP) của Web, một lớp ứng dụng bên trên TCP/IP, cũng không có trạng thái. Mỗi yêu cầu từ người dùng đối với một trang Web hoặc URL dẫn đến các trang được yêu cầu sẽ được phục vụ, nhưng không có máy chủ Web (HTTP) ghi nhớ yêu cầu sau đó.

Nói cách khác, không có sự liên tục được ghi lại. Mỗi thông tin liên lạc là rời rạc và không liên quan đến những người đi trước hoặc sau.

Để có giao tiếp trạng thái, một nhà phát triển trang web phải cung cấp một chương trình đặc biệt mà máy chủ có thể gọi để có thể ghi lại và truy xuất thông tin trạng thái.

Các trình duyệt web như Netscape Explorer và Microsoft Internet Explorer cung cấp một khu vực trong thư mục con của chúng, nơi thông tin trạng thái có thể được lưu trữ và truy cập.

Khu vực và thông tin mà các trình duyệt Web và ứng dụng máy chủ đưa vào khu vực này được gọi là bánh quy .

Trong các đặc tả giao thức chính thức, máy trạng thái hữu hạn là một mô tả trừu tượng về cách thức hoạt động của một hệ thống trạng thái mô tả hành động theo sau mỗi trạng thái có thể.

Internet (bao gồm cả World Wide Web) có thể được coi là một hệ thống hoặc máy không trạng thái. Hầu hết các máy tính, con người và voi đều hoạt động bình thường.

Tóm lại:

HTTP là một Application Protocol dạng stateless, tương tác client-server theo HTTP thì phần server sẽ không lưu lại dữ liệu của client.

HTTP ban đầu chỉ được dùng đơn thuần cho website, client gửi request, server nhận request xử lý rồi trả về lại cho client hiển thị. Sau đó thì kết thúc 1 quy trình. Sau này người ta mới bắt đầu nâng cấp cho phép website giống như một ứng dụng stateful bao gồm html, database (mysql, mongodb…), transaction…

Có 4 cách lưu data của client khi xây dựng Web Application bao gồm: URL Rewriter, Form, Cookie, HTTP Session.

Bản tiếng Anh để mọi người dễ hiểu hơn nhé

Stateful and stateless are adjectives that describe whether a computer or computer program is designed to note and remember one or more preceding events in a given sequence of interactions with a user, another computer or program, a device, or other outside element.

Stateful means the computer or program keeps track of the state of interaction, usually by setting values in a storage field designated for that purpose. Stateless means there is no record of previous interactions and each interaction request has to be handled based entirely on information that comes with it.

Stateless and Stateful protocol

Stateful and stateless are derived from the usage of state as a set of conditions at a moment in time.

Computers are inherently stateful in operation, so these terms are used in the context of a particular set of interactions, not of how computers work in general.

The Internet’s basic protocol, the Internet Protocol (IP), is an example of a stateless interaction. Each packet travels entirely on its own without reference to any other packet.

When you request a Web page from a Web site, the request travels in one or more packets, each independent of the other as far as the Internet Protocol program itself is concerned. (The upper layer Transmission Control Protocol – TCP – does relate packets to each other, but uses the information within the packet rather than some external information to do this).

The term connectionless is also used to describe communication in which a connection is made and terminated for each message that is sent. IP is connectionless as well as stateless.

The Web’s Hypertext Transfer Protocol (HTTP), an application layer above TCP/IP, is also stateless. Each request from a user for a Web page or URL results in the requested pages being served, but without the Web (HTTP) server remembering the request later. In other words, there is no recorded continuity.

Each communication is discrete and unrelated to those that precede or follow. In order to have stateful communication, a site developer must furnish a special program that the server can call that can record and retrieve state information. Web browsers such as Netscape Explorer and Microsoft Internet Explorer provide an area in their subdirectories where state information can be stored and accessed. The area and the information that Web browsers and server applications put in this area is called a cookie.

In formal protocol specifications, a finite state machine is an abstract desciption of how a stateful system works that describes the action that follows each possible state.

The Internet (including the World Wide Web) can be thought of as a stateless system or machine. Most computers, human beings, and elephants are stateful.

Like
Like Love Haha Wow Sad Angry

Bình luận

Bài viết liên quan