The rest là gì

Apartments, rest-home care beds and hospital beds would provide the variety of retirement care now expected.

However, she recommends regulation ensuring new residents are screened for nutritional needs, mandatory nutrition training for rest-home workers, and a requirement rest-homes sought input on menus from a dietitian.

- REST là một định nghĩa kiểu kiến trúc (Architecture Style) được áp dụng cho các ứng dụng được nối mạng (Networked Applications). Nó tồn tại như một loạt các ràng buộc (Constraints) được áp dụng cho việc triển khai các thành phần mạng, cho phép ngữ nghĩa giao diện thống nhất, thay vì các triển khai và cú pháp dành riêng cho ứng dụng.

- REST là một kiến trúc mạng lần đầu tiên được ghi lại bởi Roy Fielding trong luận án tiến sĩ của ông có tiêu đề “Architectural Styles and the Design of Network-based Software Architectures”, được xuất bản vào năm 2000. REST cho phép máy khách (Clients) tương tác với dữ liệu được lưu trữ trên máy chủ (Servers) mà không cần phải có bất kỳ kiến thức trước nào về máy chủ hoặc những gì tồn tại trên đó.


The rest là gì

 


REST là viết tắt của từ “Representational State Transfer”, trong tiếng Việt có nghĩa là “Chuyển trạng thái trình bày”. Những người theo chủ nghĩa thuần túy viết tắt thường viết nó là ReST, vì chữ E trong REST không thực sự đại diện cho bất cứ điều gì. Nó chỉ là chữ cái thứ hai của từ “Representational”. Điều này tránh những tranh cãi về cách phát âm nó, giống như vấn đề đã gây khó khăn cho GIF trong những năm gần đây. Với chữ E bao gồm, không có sự nhầm lẫn khi phát âm từ viết tắt chính xác hơn của RST là cổ tay “wrist” hoặc thậm chí là R-S-T.

2. Những ràng buộc chung của REST

- Không có định nghĩa hoặc tiêu chuẩn cụ thể về REST là gì. Là một khái niệm về kiến trúc - Architecture, REST xác định cách các thành phần khác nhau được liên kết thông qua các trình kết nối và cách dữ liệu được trao đổi qua các giao diện. REST là một loạt các ràng buộc hoặc yêu cầu mà khi tuân theo, sẽ tạo ra việc triển khai kiểu kiến trúc REST.

- Kiến trúc REST Architecture không khuyến khích việc tạo ra các phương pháp bổ sung, theo tình huống cụ thể. Ví dụ, một kiến trúc REST Architecture sẽ sử dụng phương thức GET để truy xuất dữ liệu trong mọi trường hợp. Thay đổi duy nhất đối với các loại dữ liệu khác nhau sẽ là các tham số khác nhau. Ngược lại điều này với việc tạo một phương pháp mới để lấy thông tin về người dùng (getUser) và một phương pháp khác để lấy thông tin về giá cả (getPricing), v.v.

- Client server (Yêu cầu đối với máy chủ và máy khách)

  • Giao diện người dùng trên máy khách (Clients) tách biệt và độc lập với việc lưu trữ dữ liệu trên máy chủ (Servers). Điều này cho phép máy khách được triển khai và sửa đổi bất kể điều gì đang xảy ra trên máy chủ. Tương tự như vậy, dữ liệu trên máy chủ có thể được sử dụng và sửa đổi bất kể máy khách đang truy cập bằng cách nào. Thiết kế như vậy cho phép cả hệ thống máy khách và máy chủ phát triển với tốc độ riêng của chúng, độc lập với nhau.

- Stateless (Không trạng thái)

  • Không có dữ liệu phiên (Session Data) nào được lưu trữ trên máy chủ giữa các yêu cầu từ máy khách. Nói cách khác, mọi giao dịch phải mang theo khả năng hiểu yêu cầu hoàn toàn mà không cần truy cập vào bất kỳ ngữ cảnh hoặc dữ liệu bổ sung nào được lưu trữ trên máy chủ. Tất cả dữ liệu phiên phải nằm độc quyền trên máy khách.
  • Ràng buộc này cho phép đơn giản hóa việc cân bằng tải (Load Balancing) hoặc khả năng chịu lỗi (Fault Tolerance). Một máy chủ khác có thể đáp ứng từng và mọi yêu cầu từ máy khách và trả về cùng một dữ liệu mà máy chủ gốc sẽ có, miễn là cả hai máy chủ đều có cùng dữ liệu gốc. Không cần phải chuyển bất kỳ loại dữ liệu phiên cụ thể nào giữa các máy chủ cân bằng tải như vậy. Các phiên không phải là không trạng thái (Stateless) có thể dẫn đến các phản hồi khác nhau nếu yêu cầu được xử lý bởi một máy chủ khác, vì chỉ máy chủ trước đó mới có dữ liệu cụ thể cho phiên đó với máy khách.

- Cacheable data (Dữ liệu có thể lưu vào bộ nhớ cache)

  • Trong mọi trao đổi, dữ liệu phải được đánh dấu là dữ liệu có thể lưu vào bộ nhớ cache hoặc không thể lưu trong bộ nhớ cache. Dữ liệu có thể lưu vào bộ nhớ cache có thể được máy khách lưu trữ và sử dụng lại. Không có dữ liệu nào được lưu trữ trên máy chủ vì điều này sẽ vi phạm ràng buộc nguyên tắc không trạng thái (Stateless) ở trên. Khả năng lưu trữ dữ liệu vào bộ nhớ cache làm giảm băng thông vì không cần băng thông để duy trì một phiên truy cập máy chủ - máy khách.

- Uniform interface (Giao diện thống nhất)

  • Để đạt được khả năng tương tác đầy đủ, giao diện được tách biệt khỏi loại dữ liệu miễn là tất cả các tương tác hoạt động theo cùng một cách. Bốn ràng buộc phụ đảm bảo giao diện thống nhất: Định danh tài nguyên (Identification of Resources), Thao khống tài nguyên thông qua biểu tả (Manipulation of Resources via Representations), Thông điệp tự mô tả (Self-descriptive Messages) và Siêu phương tiện đóng vai trò Engine của ứng dụng HATEOAS “Hypermedia as The Engine Of the Application State (HATEOAS)”.

Định danh các tài nguyên (Identification of Resources)

Bất kỳ thông tin nào có thể được đặt tên đều là tài nguyên. Một tài nguyên có thể là bất kỳ dạng dữ liệu nào. Định danh tài nguyên là một cách để tham chiếu đến một tài nguyên cụ thể tại một thời điểm cụ thể. Các tài nguyên đó có thể được cập nhật trên máy chủ mà khách hàng không cần phải có kiến thức trước vì mỗi yêu cầu đều được mô tả và trả lời đầy đủ.

Thao khống thông qua biểu tả (Manipulation via representations)

Một biểu tả “Representation” là trạng thái hiện tại của tài nguyên, cùng với siêu dữ liệu (Metadata) đi kèm cho phép hiểu biểu tả đó. Định dạng dữ liệu (data format) của biểu tả xác định loại đa phương tiện (Media Type) của nó. Do đó, máy khách có thể yêu cầu một tài nguyên, chẳng hạn như hình ảnh, từ một máy chủ bằng cách sử dụng mã định danh tài nguyên của tài nguyên đó (có thể là URI) và bản trình bày hình ảnh đó bao gồm các byte tạo nên hình ảnh, cùng với siêu dữ liệu xác định định dạng dữ liệu như một loại phương tiện JPG sẽ được trả lại cho máy khách, sau đó có thể hiển thị hình ảnh cho người dùng.

Thông điệp tự mô tả (Self-descriptive messages)


Mọi thông báo từ máy khách đến máy chủ phải chứa tất cả các thông tin cần thiết để xử lý thông báo. Trong trường hợp bảo mật và xác thực, mã thông báo bảo mật phải được trao đổi trong mỗi tin nhắn.


Cookie rất phổ biến trên internet. Hành động kiểm tra cookie so với tất cả dữ liệu trong mọi thư sẽ là một ví dụ về thông điệp không tự mô tả và do đó không phải là RESTful về mặt kỹ thuật.


Siêu phương tiện là Engine của trạng thái ứng dụng (HATEOAS)


Định nghĩa siêu phương tiện (Hypermedia): Siêu phương tiện tương tự như khái niệm siêu văn bản (hypertext), hay siêu liên kết (hyperlink), ngoại trừ việc nó bao gồm tất cả các dạng phương tiện chứ không chỉ văn bản hoặc liên kết. Đó là một cách phi tuyến tính để cung cấp thông tin hoặc dữ liệu thường thông qua việc theo một liên kết hoặc điểm đánh dấu khác trong tài nguyên đã xuất bản, chẳng hạn như một trang web. Siêu phương tiện có thể là văn bản, đồ họa, video hoặc các dạng dữ liệu khác.


Theo HATEOAS, khách hàng tương tác qua mạng thông qua siêu phương tiện.


Máy khách tương tác với máy chủ chỉ sử dụng siêu phương tiện. Siêu phương tiện tương tự đó được máy chủ phân phối động theo yêu cầu RESTful request. Do đó, không cần biết trước về dữ liệu trên máy chủ, cấu trúc của nó, cũng như cách dữ liệu đó được lưu trữ. Thay vào đó, chỉ cần sử dụng cấu trúc và phương pháp siêu phương tiện được xác định rõ ràng.

- Layered system (Hệ thống phân lớp)

  • Trong hệ thống các lớp phân cấp, không thành phần nào có thể tương tác với hoặc xem bất kỳ dữ liệu hoặc giao diện nào ngoại trừ trên lớp hiện tại của chính nó. Do đó, máy khách không cần biết cách, thậm chí không cần thiết phải kết nối với bất kỳ máy chủ, proxy, tường lửa, bộ định tuyến hoặc điểm cuối bổ sung nào. Thay vào đó, bất kỳ trung gian (intermediary) nào sẽ tiếp tục kết nối với các máy chủ tiếp theo theo các ràng buộc REST và kết quả là phản hồi cho bất kỳ yêu cầu nào được trả lại qua trung gian cho máy khách cũng sẽ tuân thủ REST. Do đó, các thay đổi hoặc gián đoạn đối với hệ thống trung gian là vô hình đối với máy khách cho phép các hệ thống trung gian đó cung cấp cân bằng tải, bảo mật hoặc các chức năng khác.

- Code on demand (Code theo yêu cầu)

  • Mặc dù về mặt kỹ thuật được gắn nhãn là tùy chọn, các máy khách trong kiến trúc REST sẽ có thể tải xuống và thực thi các tập lệnh. Điều này cho phép mở rộng các chức năng và hệ thống phức tạp hơn, trong khi vẫn cung cấp giao tiếp kiểu REST giống nhau giữa máy khách và máy chủ. Như với các yêu cầu và phản hồi cơ bản, toàn bộ hướng dẫn chạy mã đã tập lệnh (scripted code) phải độc lập và không yêu cầu triển khai trước trên máy khách.
  • Ví dụ: một ứng dụng khách web (web client) có thể thực thi JavaScript mà nó nhận được từ máy chủ. Mặc dù Code nằm trên máy chủ, nhưng nó không được thực thi ở đó. Thay vào đó, bản thân Code được gửi đến máy khách như một phần của yêu cầu và code đó được máy khách thực thi theo cách triển khai của nó. Đây là lý do tại sao việc triển khai các tiêu chuẩn thích hợp trong các ứng dụng khách web là rất quan trọng; nếu không, cùng một mã từ máy chủ có thể được thực thi với các kết quả khác nhau trên các máy khách khác nhau.

3. Các thành phần của REST


- Data elements (Các thành phần của dữ liệu)

  • Các thành phần của hệ thống REST giao tiếp thông qua đặc tả tài nguyên ở một trong số các định dạng tiêu chuẩn hóa đã thống nhất như định dạng đồ họa (graphic formats), định dạng tài liệu (document formats) và các định dạng web (web formats) khác nhau. Một lần nữa, để trở thành một hệ thống REST thực sự, mỗi giao dịch phải có khả năng truy xuất và diễn giải tài nguyên mong muốn.
  • Resource (Tài nguyên) là bất cứ thứ gì có thể được đặt tên. Tài nguyên được lưu trữ trên máy chủ được máy khách yêu cầu. Tài nguyên có thể là tệp tĩnh (static file), tài liệu (document), cơ sở dữ liệu (database), ảnh (picture) hoặc bất kỳ định dạng nào khác có thể được yêu cầu.
  • Mặc dù bây giờ là một khái niệm phổ biến, nhưng ý tưởng ban đầu về tài nguyên như một phần tử thời điểm chung, có thể thay đổi, là đặc điểm chính của REST và web nói chung. Tài nguyên là bất kỳ dữ liệu có thể đặt tên nào trên máy chủ. Dữ liệu đó không chỉ có thể thay đổi thành phiên bản mới hơn của cùng một dữ liệu, mà thậm chí thành một loại dữ liệu hoàn toàn khác. Điều này cho phép dữ liệu trên máy chủ được cập nhật bất kỳ lúc nào mà không cần bất kỳ máy khách nào biết trước về nó, một tính năng chính của khả năng tương tác và tính khả dụng.

- Resource identifier (Định danh tài nguyên)

  • Resource identifier (Định danh tài nguyên) là vị trí cụ thể của tài nguyên được yêu cầu. Trong trường hợp hệ thống dựa trên HTTP, định danh tài nguyên là URL hoặc URI. Định danh tài nguyên chỉ định một tài nguyên. Một mã định danh tài nguyên duy nhất có thể tham chiếu đến dữ liệu hoặc tài nguyên khác nhau vào những thời điểm khác nhau. Trong một hệ thống tuân thủ REST, máy khách không cần biết trước loại tài nguyên mà định danh tài nguyên đang yêu cầu. Phản hồi sẽ bao gồm siêu dữ liệu mô tả cách diễn giải dữ liệu nhận được.
  • Ví dụ: ngay cả khi yêu cầu URL có trạng thái là “/server/index.html”, nếu tài nguyên tại địa chỉ đó trả về biểu diễn dưới dạng tệp hình ảnh, cùng với siêu dữ liệu tương ứng, tệp hình ảnh sẽ vẫn được hiển thị chính xác bất kể tài nguyên là gì, định danh tài nguyên sẽ cho biết.

- Representations (Biểu tả)

  • Biểu tả đề cập đến dữ liệu được gửi đến máy khách. Như đã đề cập ở trên, biểu tả phải là một trong những định dạng dữ liệu được chuẩn hóa. Dữ liệu không được xử lý trên máy chủ mà được máy khách thông dịch. Ví dụ: một ứng dụng khách yêu cầu một tài liệu HTML không nhận được một đồ họa để hiển thị trên màn hình, mà là một tập hợp mã HTML code sau đó được diễn giải và hiển thị trên ứng dụng khách. Các ví dụ biểu tả khác bao gồm các tệp đồ họa như ảnh JPEG và GIF.

- Representation metadata (Siêu dữ liệu biểu tả)

  • Representation metadata (Siêu dữ liệu biểu ta) cung cấp thông tin trình bày cho hệ thống. Cũng giống như với hầu hết các siêu dữ liệu, siêu dữ liệu biểu tả thường không phải là một phần của những gì được hiển thị cho người dùng cuối. Siêu dữ liệu biểu tả có thể bao gồm thông tin về loại phương tiện (media type), ngày tạo (created date) và sửa đổi (modified date) cũng như số phiên bản (version number).

- Resource metadata (Siêu dữ liệu tài nguyên)

  • Siêu dữ liệu tài nguyên là thông tin bổ sung được cung cấp cho hệ thống về tài nguyên tồn tại trên máy chủ chứ không phải là thông tin trình bày về tài nguyên được hiển thị trên máy khách. Ví dụ về siêu dữ liệu tài nguyên bao gồm liên kết nguồn (source links), hiển thị thay thế (alternates) và thông tin về tài nguyên. Ví dụ: siêu dữ liệu tài nguyên có thể bao gồm văn bản thay thế được hiển thị trong trường hợp không thể hiển thị biểu diễn hình ảnh vì một số lý do (ví dụ: văn bản hình ảnh ALT trong HTML).

- Control data (Dữ liệu kiểm soát)

  • Dữ liệu kiểm soát chủ yếu quan tâm đến tính hợp lệ của tài nguyên và sự thể hiện trình bày của nó trên máy khách. Dữ liệu kiểm soát bao gồm việc dữ liệu có thể lưu vào bộ nhớ cache hay không, cũng như thời gian hết hạn tuyệt đối (Expiry Time) hoặc cung cấp giới hạn về thời lượng dữ liệu được sử dụng. Dữ liệu kiểm soát cũng có thể bao gồm Checksum hoặc các phương tiện khác để đảm bảo tính toàn vẹn.


The rest là gì

4. Triển khai RESTful (RESTful implementation)

- Khi kết hợp với nhau, kiến trúc REST Architecture tạo ra một khung đồng bộ (gọi là Framework) có khả năng mở rộng cao, hoàn toàn minh bạch và có thể tái sử dụng, trong đó các máy khách được tách ra khỏi việc cấy ghép các dịch vụ trên máy chủ. Nó độc lập với nền tảng, cho cả máy khách và máy chủ. Nó là ngôn ngữ và cấu trúc độc lập. Sẽ không có vấn đề gì nếu dữ liệu tồn tại trong cơ sở dữ liệu, được truy xuất bởi các tiến trình của máy chủ Java Server và được gửi đến một chương trình cục bộ - chẳng hạn như trình duyệt - được code bằng một trong một số phiên bản ngôn ngữ lập trình C.

- Trên các trang web hiện đại, REST được triển khai bằng cách sử dụng một bảng từ vựng tiêu chuẩn chung giữa máy khách và máy chủ được gọi là Giao thức truyền siêu văn bản (Hypertext Transfer Protocol), hoặc HTTP. Tuy nhiên, bất kỳ triển khai nào phù hợp với tất cả các đối tượng thuê (tenant) của kiến trúc REST đều được coi là triển khai RESTful. HTTP không phải là khả năng duy nhất.

- Mặc dù HTTP và REST không giống nhau, nhưng HTTP là dạng ban đầu và là một triển khai của REST. Điều này không có gì đáng ngạc nhiên khi Roy Fielding đang làm việc trên giao thức HTTP 1.1, đồng thời phát triển kiến trúc REST Architecture.

The Rest trong tiếng Anh là gì?

The rest có nghĩa 'cái còn lại'. Nó ở dạng số ít và luôn có the. Ví dụ: We only use three rooms.

Have a rest nghĩa là gì?

Nghỉ đi nhé! Have a nice rest all the way over there. Nghỉ ngơi ở đấy vui vẻ nhé cu.

Take a rest là gì?

TAKE A REST” TRONG TIẾNG ANH LÀ GÌ? Định nghĩa: Take a rest được hiểu như một hành động được dừng lại sau một quãng làm việc. Có thể hiểu nghỉ ngời khi làm xong một công việc nào đó hoặc nghỉ ngơi một chút rồi tiếp tục công việc đó sau.

Ất Rest nghĩa là gì?

Thuật ngữ dữ liệu ở trạng thái nghỉ (data at rest) được sử dụng để mô tả tất cả dữ liệu trong thiết bị lưu trữ (storage) nhưng loại trừ bất kỳ dữ liệu nào thường xuyên truyền qua mạng (network) hoặc dữ liệu nằm trong bộ nhớ tạm thời (temporary memory).