2015-03-25 19 views
5

có lẽ tôi có một câu hỏi ngu ngốc nhưng tôi đang cố gắng phân loại REST api giữa các lớp OSI. (Câu hỏi phỏng vấn) Nó phải nằm trong khoảng từ 5 đến 7 lớp, Người phỏng vấn cho biết: nó nằm trong 5 lớp vì nó tương tự như RPC. Nhưng theo ý kiến ​​của tôi, nó không thể ở lớp 5 phiên vì REST api đúng là không trạng thái không giống như phiên (http session), vì vậy theo ý kiến ​​của tôi nó có thể được đặt làm giao thức từ lớp ứng dụng 7 vì nó giống như http (nhưng tại sao không phải trong 6?).Với lớp OSI có thể là REST api

Tôi tìm kiếm một số tài nguyên trên internet nhưng tôi không tìm thấy câu trả lời rõ ràng. (Tôi biết rằng các giao thức được đặt trong OSI không rõ ràng) Nhưng có lẽ bạn có ý kiến ​​tốt về điều này?

+2

Tất cả các dịch vụ REST mà tôi gặp phải đang được chuyển tiếp qua một số loại máy chủ http. Trừ khi bạn tạo máy chủ socket của riêng bạn và tự mình thực hiện một giao thức dịch vụ an toàn thì bạn sẽ ở hoặc trên bất kỳ mức OSI nào mà máy chủ http mà bạn đang chạy được phân loại là. –

+2

REST chỉ là một phong cách kiến ​​trúc và một API tuân thủ nghiêm ngặt các nguyên tắc REST được gọi là RESTful API. Có nói rằng, AFIK, bạn chỉ có thể viết các API "Lớp ứng dụng" với các nguyên tắc REST (Các API viết/giao thức của các lớp còn lại với REST không có ý nghĩa với tôi), vì vậy các API REST ngồi ở lớp Ứng dụng. – geekprogrammer

Trả lời

2

Kiến trúc REST là không trạng thái theo nghĩa là máy chủ không lưu trữ trạng thái của ứng dụng khách, nhưng trạng thái của các đối tượng được truyền qua lại. Sau cùng, REST là viết tắt của Representational State Transfer. Vì vậy, tôi nghĩ REST nằm trong Lớp 5 - Lớp phiên, thường được mô tả là lớp nơi trao đổi thông tin liên tục dưới dạng nhiều lần truyền lại qua lại giữa hai nút.

Thật khó để biết cách REST API có thể thuộc về Lớp 6 hoặc Lớp 7 của Mô hình OSI. Lớp trình bày cung cấp cho thương lượng về hình thức biểu diễn hoặc cú pháp của dữ liệu sẽ được chuyển. Thông thường các cơ chế như mã hóa ký tự (UTF, ASCII), mã hóa dữ liệu và giải mã là một phần của lớp trình bày. Lớp ứng dụng cung cấp các dịch vụ ứng dụng cụ thể như FTP, HTTP, Telnet hỗ trợ các quy trình người dùng cuối.

+0

Câu trả lời này không có ý nghĩa gì, vui lòng đọc các ý kiến ​​trong câu hỏi ... – gustavodidomenico

0

Tôi đồng ý với Gowthamnvv. REST API sẽ nằm giữa tầng Ứng dụng và tầng Giao vận trong trường hợp của mô hình OSI. Nhưng nó sẽ nằm trong Lớp ứng dụng trong trường hợp mô hình TCP/IP, vì 3 lớp đầu tiên của mô hình OSI được tích hợp nhiều hơn vào lớp Ứng dụng của mô hình TCP/IP, ngoại trừ một số hàm phiên được thực hiện bởi Transport Layer trong trường hợp TCP/IP.

0

Đừng để tiêu đề "Phiên" của Lớp 5 gây nhầm lẫn cho bạn. REST là bình thường lớp 7. Những gì là dưới đây các ứng dụng? Hệ điều hành. Liệu sự quan tâm về REST? Hãy xem Chrome> Công cụ dành cho nhà phát triển> Mạng> Tiêu đề cho trang này (trong cửa sổ ẩn danh vì tôi không tin tưởng bạn). Screenshot of Developer Tools Điều gì làm cho REST này nằm hoàn toàn trong các tiêu đề HTTP mà bạn thấy ở đây. Hệ điều hành có làm bất cứ điều gì với bất kỳ hệ điều hành nào khác ngoài việc cung cấp cho Chrome không? Không có nó. REST là một giao thức trong lớp ứng dụng.

1

REST không phải là giao thức cho hai hệ thống giao tiếp. REST là kiểu dáng kiến ​​trúc . Đó là chủ yếu là trên đỉnh HTTP, lớp ứng dụng.

+0

Câu hỏi này nên là thị trường đúng. – gustavodidomenico