Server의 형태
•
모놀리식 아키텍처(Monolithic Architecture)
하나의 큰 서버 = 종업원, 요리사, 서랍, 계산 등을 모두 하나에서 처리
•
마이크로서비스 아키텍처(Mircroservice Architecture - MSA)
종업원, 요리사, 서랍, 계산 등을 각각의 개별 서버로 구성하고 서로 통신
REST API
Representational State Transfer : 정보를 주고 받을 때 널리 사용되는 방식
•
HTTP(Hyper Text Transfer Protocol)
: 정보를 주고 받을 때 지켜야 하는 통신 프로토콜(규약), 약속
HTTP는 기본적으로 80번 포트를 사용한다. 서버에서 80번 포트를 열어주지 않으면 HTTP 통신이 불가능
REST란 형식의 API는 각 요청이 어떤 동작이나 정보를 위한 것을 요청 모습 자체로 추론할 수 있다.
기본적인 데이터 처리 : 조회 작업, 새로 추가, 수정, 삭제 (CRUD)
Resource, Method, Representation of Resource 로 구성되며 Resource는 URI같이 unique한 ID를 가진 리소스이고, Method는 서버에 요청을 보내기 위한 방식을 뜻하며 GET, POST, PUT, PATCH, DELETE가 있다.
•
HTTP Method
◦
GET
▪
어떤 정보를 가져와서 조회하기 위해 사용되는 방식
▪
URL에 변수(데이터)를 포함시켜 요청함
▪
데이터를 Header(헤더)에 포함하여 전송함
▪
URL에 데이터가 노출되어 보안에 취약
▪
캐싱할 수 있음
◦
POST
▪
데이터를 서버로 제출해 추가 또는 수정하기 위해 사용하는 방식
▪
URL에 변수(데이터)를 노출하지 않고 요청
▪
데이터를 Body(바디)에 포함
▪
URL에 데이터가 노출되지 않아 기본 보안은 되어 있음
▪
캐싱할 수 없음(다만 그 안에 아키텍처로 캐싱할 수 있음)
HTTP 통신은 request, response 시에 정보를 Packet에 저장한다.
이 패킷은 Header와 Body로 이루어져 있는데 Header에는 송수신 주소와 시간을, Body엔 전달 내용이 있다.
•
Status Code
: 클라이언트 요청이 서버의 반응 코드
1xx(정보) : 요청을 받았고, 프로세스를 계속 진행함
2xx(성공) : 요청을 성공적으로 받았고, 실행함
3xx(리다이렉션) : 요청 완료를 위한 추가 작업이 필요
4xx(클라이언트 오류) : 요청 문법이 잘못되었거나 요청을 처리할 수 없음
5xx(서버 오류) 서버가 요청에 대해 실패함
•
동기 Sync
서버에서 요청을 보냈을 때, 응답이 돌아와야 다음 동작을 수행할 수 있다.
A 작업이 모두 완료될 때까지 B 작업은 대기해야 함
•
비동기 Async
요청을 보낼 때 응답 상태와 상관없이 다음 동작을 수행한다.
A작업과 B 작업이 동시에 실행됨
•
IP
PC의 주소를 나타내는 체계인 IP는 Internet Protocol의 줄임말이며, 인터넷상에서 사용하는 주소체계이다.
그 중 4덩이의 숫자로 구성된 IP 주소 체계를IPv4라고 하는데 각 덩어리마다 0~255로 나타낼 수 있다.
localhost, 127.0.0.1 : 현재 사용 중인 Local PC를 뜻하며
0.0.0.0, 255.255.255.255 : broadcast address는 로컬 네트워크에 접속된 모든 장치와 소통하는 주소이다.
개인 PC 보급으로 누구나 PC를 사용해 IPv4로 할당할 수 있는 한계점 진입하여 IPv6이 나왔다.
•
Port
IP 주소 뒤에 나오는 숫자를 의미한다. PC에 접속할 수 있는 통로(채널)의 역할을 하며 사용 중인 포트는 중복할 수 없다.
Port는 0 ~ 65535까지 존재하고 그 중 0~1024는 통신을 위한 규약에 정해져있다.
- 22 : SSH
- 80 : HTTP
- 443 : HTTPS