[TIL] 20241202 TIL: OSI 7계층, RESTful API

Jaeyoung Ko·2024년 12월 2일
0

<1> OSI 7계층이란?


Open Systems Interconnection Reference Model로 불리는 OSI 모델은

국제표준화기구 ISO 에서 개발한 모델로 네트워크 프로토콜 디자인과 통신에 대해 계층적으로 나누어 설명한 개념이다.



(1) Physical Layer

데이터의 단순전달과 전기적, 기계적, 절차적 특성을 정의하며,

데이터 전송 매체 (케이블, 무선 등)와 신호 방식 (전압, 주파수 등)에 대해 다룬다.

데이터 단위 : bit



물리 계층을 통해 전달된 데이터의 오류 검출 및 수정, 프레임 동기화 등을 수행하며

MAC 주소를 통해 네트워크 장비 간의 데이터 전송을 관리한다.

동일 네트워크 장치 간 통신 흐름 관리, 오류 탐지 및 수정과 신뢰성 체크

데이터 단위: frame



(3) Network Layer

데이터 패킷의 경로 설정 및 논리적 주소(IP 주소)를 통해 데이터 전송을 관리한다.

라우팅, 데이터 전송 경로 최적화 등을 수행



(4) Transport Layer

두 기기 간의 종단 간 통신을 담당하며 세션 계층에서 데이터를 가져와서 네트워크 계층에 보내기 전에 세그먼트라고 하는 조각으로 분할하는 일을 포함한다.

Flow control과 Error control 기능의 역할도 담당.

  • Flow control: 연결 속도가 빠른 송신자가 연결 속도가 느린 수신자를 압도하지 않도록 최적의 전송 속도를 결정
  • Error control: 수신된 데이터가 완료되었는지 확인 및 수신 실패 시 재전송을 요청을 통한 제어

전송 계층 프로토콜: 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP)

데이터 단위: segment, datagram



(5) Session Layer

두 기기 사이의 통신을 시작하고 종료하는 일, 그리고 데이터 전송을 체크포인트와 동기화하는 작업을 담당한다.



(6) Presentation Layer

프레젠테이션 계층은 데이터의 변환, 암호화, 압축을 담당한다.



(7) Application Layer

사용자의 데이터와 직접 상호 작용하는 유일한 계층으로, 소프트웨어가 사용자에게 의미 있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할을 한다.

애플리케이션 계층 프로토콜: HTTP, SMTP



데이터 송수신 흐름 정리

Physical Layer: 데이터 단순 전달 / 전파 -> bit

Datalink Layer: 동일 네트워크 신뢰성 보장 / bit -> frame

Network Layer: 최적화, 라우팅 / frame -> packet

Transport Layer: 네트워크 신뢰성 보장 / packet -> segment

Session Layer: 세션 시작-유지-종료

Presentation Layer: 데이터 타입 파악, 최적화





RESTful API


RESTful API(Representational State Transfer API)는 두 컴퓨터 시스템의 안전한 정보 교환 / 상호작용을 위한 사용하는 인터페이스이다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따른다.



아래 4가지 아키텍처 제약 조건이 존재한다.

1) Request는 리소스 식별자를 통해 resource를 식별해야 한다.

2) 클라이언트는 리소스 표현에서 리소스에 대한 수정/삭제에 대한 충분한 정보를 가지고 있다. 서버는 리소스를 자세히 설명하는 meta data를 전송함으로 이를 충족한다.

3) 클라이언트는 처리하는 방법에 대한 정보를 수신한다. 서버는 클라이언트가 리소스를 적절하게 사용할 방법에 대한 메타데이터가 담긴 메시지를 전송한다.

4) 클라이언트는 작업 완료를 위한 리소스에 대한 정보를 수신한다. 서버는 클라이언트가 더 많은 리소스를 동적으로 검색할 수 있도록 표현에 하이퍼링크를 넣어 전송한다.



메서드
Hypertext Transfer Protocol(HTTP)를 사용하여, 리소스에 수행해야 하는 작업을 서버에 알려주며 다음은 4가지의 HTTP 메서드이다.

GET


클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스합니다. GET 요청을 캐싱하고 RESTful API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시할 수 있습니다.



POST


클라이언트는 POST를 사용하여 서버에 데이터를 전송하여 요청과 함께 포함된 데이터 표현으로 리소스를 생성한다.



PUT


클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트한다. POST와 달리, RESTful 웹 서비스에서 동일한 PUT 요청을 여러 번 전송해도 결과는 동일하다.



DELETE


클라이언트는 DELETE 요청을 사용하여 리소스를 제거함으로 서버의 상태를 변경한다.

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글