면접준비
Web
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 계층
- 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜
- 보안계층으로 응용 계층과 전송 계층 사이에 속함