Zero To One

2) HTTP를 이용한 클라이언트-서버 통신과 API 본문

웹서비스 개발 기초

2) HTTP를 이용한 클라이언트-서버 통신과 API

Zero_To_One 2022. 2. 15. 12:14

1) 클라이언트와 서버의 통신

  • 클라이언트와 서버 간의 통신은 요청과 응답으로 구성.
  • 요청이 있어야지 응답이 옴.
  • 클라이언트-서버 아키텍처에서는 서버 마음대로 클라이언트에 리소스를 전달하지 않는다.

 

2) 프로토콜(Protocol)

  • 통신하는 서로 다른 두 장치간에 협의된 규칙. 즉, 약속
  • 웹 애플리케이션 프로코톨 : HTTP

3) OSI 7 Layer

  • OSI 7 Layer에서 응용계층(Application)에 해당되는 프로토콜
    • HTTP : 웹에서 HTML, JSON 등의 정보를 주고 받는 프로코톨
    • HTTPS : HTTP에서 보안이 강화된 프로토콜
    • FTP : 파일 전송 프로토콜
    • SMTP : 메일을 전송하기 위한 프로토콜
    • SSH : CLI환경의 원격 컴퓨터에 접속하기 위한 프로토콜
    • RDP : Window 계열의 원격 컴퓨터에 접속하기 위한 프로토콜
    • WebSocket : 실시간 통신, Push 등을 지원하는 프로토콜
  • OSI 7 Layer에서 전송계층(Transport Layer)에 해당되는 프로토콜
    • TCP : HTTP,FTP 통신 등의 근간이 되는 인터넷 프로토콜
    • UDP : (양방향 TCP와는 다르게) 단방향으로 작동하는 훨씬 더 빠르고 단순하지만, 신뢰성이 낮은 인터넷 프로토콜

4) API (Appliication Programming Interface)

  • 서버에는 마치 식당에서 메뉴판을 제공하듯, 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야 한다.
  • Interface : 의사소통이 가능하도록 만들어진 접점 (메뉴판)
  • 서버 != 인터페이스 : API는 앱이 요청할 수 있고 프로그래밍 가능하다는 점에서 인터페이스와는 다르다

5) HTTP API 디자인에는 Best Practice가 존재한다.

Endpoint Method Action
/users GET 유저 목록
/users POST 유저 생성
/users/:id GET 유저 조회
/users/:id PUT 유저 수정
/users/:id DELETE 유저 삭제
/posts GET 포스트 목록
/posts?userId={id} GET 유저별 포스트 목록
/posts POST 포스트 생성
/posts/:id GET 포스트 조회
/posts/:id PUT 포스트 수정
/posts/:id DELETE 포스트 삭제
/todos GET 할 일 목록
/todos?userId={id} GET 유저별 할 일 목록
/todos POST 할 일 생성
/todos/:id GET 할 일 조회
/todos/:id PUT 할 일 수정
/todos/:id DELETE 할 일 삭제
/comments GET 댓글 목록
/comments?userId={id} GET 유저별 댓글 목록
/comments?postId={id} GET 포스트별 댓글 목록
/comments/:id GET 댓글 조회
/comments/:id PUT 댓글 수정
/comments/:id DELETE 댓글 삭제

출처 : https://koreanjson.com/

 

Korean JSON

{ Korean JSON } Super simple JSON API in Korean. Request GET, POST, PUT, DELETE actions and get JSON data in Korean back to get the most out of the look and feel of Korean language when prototyping your project. 한국어 데이터를 제공하는 초간

koreanjson.com

요청 적절한 매소드
조회 (Read) GET
추가 (Create) POST
갱신 (Update) PUT 또는 PATCH
삭제 (Delete) DELETE

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages#http_%EC%9A%94%EC%B2%AD

 

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

 

 

'웹서비스 개발 기초' 카테고리의 다른 글

HTTP 요청 메서드, HTTP 상태 코드  (0) 2022.02.16
5) 도메인과 DNS  (0) 2022.02.15
4) IP, Port  (0) 2022.02.15
3) URL과 URI  (0) 2022.02.15
1) 클라이언트-서버 아키텍쳐  (0) 2022.02.15