happyst 2025. 3. 24. 15:34
REST API란
  • REST (REpresentational State Transfer)
  • 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식
  • 대표적으로 self-descriptive 와 hateos 등이 있음
  • URI에 동사를 사용하지 않고 명사를 사용한다
HTTP method
GET 리소스 조회
POST 리소스 등록 (멱등성 X)
PUT 리소스 전체 변경
PATCH 리소스 일부 변경
DELETE 리소스 삭제
HEAD HTTP Message Body를 제외한 HTTP Header 데이터 취득 (메타 데이터)
OPTIONS 리소스가 지원하는 HTTP method 취득 (주로 CORS에서 사용함)
CONNECT - 대상 리소스로 식별되는 서버에 대한 터널을 설정할 때 사용
- 요청한 리소스에 대한 양방향 연결을 시작하는 메소드
TRACE 요청 리소스가 수신되는 경로를 조회 (루프백 시험 시 사용함)

 

PUT vs PATCH

 

JsonPatch vs JsonMergePatch
  • JsonPatch
    - 커맨드 방식으로 동작함
    - op, path, value 3가지 항목으로 구성되며 각 항목을 사용함
      * op: 작업 유형 (add, remove, replace, move, copy, test 중에 하나만 사용가능)
      * path: 변경할 데이터 경로
      * value: 변경할 값
      * content-type: application/json-path+json
  • JsonMergePatch
    - JsonPatch보다 단순하고 간단함
    - 변경하려는 데이터를 JSON 형식으로 작성하여 던지면 해당되는 데이터들이 merge 되는 방식
    - 키를 null 로 변경하는 것은 삭제를 의미함
    - content-type: application/merge-path+json
HTTP status code
1xx (정보) 요청을 받았으며 프로세스를 계속 진행한다
2xx (성공) 요청을 성공적으로 받았으며 인식했고 수용하였다
3xx (리다이렉션) 요청 완료를 위해 추가 작업 조치가 필요하다
4xx (클라이언트 오류) 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
5xx (서버 오류) 서버가 명백히 유효한 요청에 대해 충족을 실패했다

 

HTTP의 약점
  • 평문 통신이기 때문에 도청 가능
  • 통신 상대를 확인하지 않기 때문에 위장 가능
  • 완전성을 증명할 수 없기 때문에 변조 가능
HTTPS
  • SSL (Secure Socket Layer) 프로토콜과 HTTP 프로토콜의 조합을 통해 HTTP 통신 내용을 암호화
SSL 계층
  • 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜
  • 보안계층으로 응용 계층과 전송 계층 사이에 속함