2015-03-25 8 views
5

może mam głupie pytanie, ale staram się sklasyfikować REST API pomiędzy warstwami OSI. (Pytanie do wywiady) Musi być pomiędzy 5 a 7 warstwą, Wywiad mówi: jest w 5 warstwach, ponieważ jest podobny do RPC.In z warstwą OSI może być REST api

Ale moim zdaniem nie może być na 5 warstwa sesji, ponieważ prawdziwe REST api jest bezpaństwowcem w przeciwieństwie do sesji (sesji http), więc moim zdaniem może być umieszczony jako protokół z 7 warstwy aplikacji, ponieważ jest jak http (ale dlaczego nie w 6?).

Przeszukuję niektóre zasoby w Internecie, ale nie znalazłem jednoznacznej odpowiedzi. (Wiem, że umieszczenie protokołów w OSI nie jest jasne) Ale może masz dobrą opinię na ten temat?

+2

Wszystkie usługi REST, z jakimi się zetknąłem, są przekazywane przez pewien typ serwera http. Jeśli sam nie utworzysz własnego serwera gniazd i nie wdrożysz restrykcyjnego protokołu serwisowego, będziesz na poziomie lub powyżej dowolnego poziomu OSI, dla którego serwer http, z którego korzystasz, jest sklasyfikowany jako. –

+2

REST to po prostu styl architektoniczny, a interfejs API, który ściśle przestrzega zasad REST, nazywa się RESTful API. Powiedziawszy to, AFIK, możesz pisać tylko API "warstwy aplikacji" z zasadami REST (pisanie API/protokołów pozostałych warstw z REST nie ma dla mnie sensu), więc interfejsy API REST znajdują się w warstwie aplikacji. – geekprogrammer

Odpowiedz

2

Architektura REST jest bezstanowa w tym sensie, że serwer nie przechowuje stanu klienta, ale stan obiektów jest przenoszony tam iz powrotem. W końcu REST oznacza reprezentację Transfer stanu. Tak więc, myślę, że REST należy do warstwy 5 - warstwy sesji, która jest zwykle opisywana jako warstwa, w której ciągła wymiana informacji odbywa się w postaci wielokrotnych transmisji zwrotnych między dwoma węzłami.

Trudno zobaczyć, w jaki sposób interfejs API usług REST mógłby należeć do warstwy 6 lub 7 modelu OSI. Warstwa Prezentacja umożliwia negocjację formy reprezentacji lub składni danych, które zostaną przesłane. Zwykle mechanizmy takie jak kodowanie znaków (UTF, ASCII), szyfrowanie i deszyfrowanie danych są częścią warstwy prezentacji. Warstwa aplikacji zapewnia usługi specyficzne dla aplikacji, takie jak FTP, HTTP, Telnet obsługujące procesy użytkownika końcowego.

+0

Ta odpowiedź nie ma żadnego sensu, przeczytaj komentarze w pytaniu ... – gustavodidomenico

0

Zgadzam się z Gowthamvv. Interfejs API REST będzie znajdować się między warstwą aplikacji a warstwą transportu w przypadku modelu OSI. Ale będzie się znajdował w warstwie aplikacji w przypadku modelu TCP/IP, ponieważ pierwsze 3 warstwy modelu OSI są bardziej zintegrowane z warstwą aplikacji modelu TCP/IP, z wyjątkiem niektórych funkcji sesji, które są wykonywane przez warstwę transportową w przypadku TCP/IP.

0

Nie pozwól, aby tytuł "sesji" w warstwie 5 wprowadził Cię w błąd. REST jest równoznaczne z warstwą 7. Co znajduje się pod aplikacją? System operacyjny. Czy dbanie o REST? Spójrzmy na nagłówki Chrome> Narzędzia programistyczne> Sieć> tej samej strony (w oknie incognito, ponieważ nie ufam Tobie). Screenshot of Developer Tools Co powoduje, że ten REST jest całkowicie w nagłówkach HTTP tutaj. Czy system operacyjny robi cokolwiek z tym innym niż dostarczeniem go do Chrome? Nie, nie. REST jest protokołem w warstwie aplikacji.

1

REST nie jest protokołem komunikacyjnym dla dwóch systemów. REST to styl architektury . Jest to głównie na szczycie HTTP, warstwa aplikacji.

+0

To pytanie powinno być rynkowe jako prawidłowe. – gustavodidomenico