2022. 3. 29.ㆍ공부/네트워크
사용자가 URL을 입력하면 웹 클라이언트가 웹 서버에게 URL을 요청하고, 웹 서버는 화면 구성에 필요한 파일을 전달한다. 이 웹 서버는 비대해질 시 WAS(JSP)와 프론트(HTML, CSS, JS) 서버로 분리된다. 이벤트가 발생되면 클라이언트는 필요한 시점에 백엔드 서버에게 API를 요청한다. API는 DB와 통신한 후 적절한 정보를 클라에게 응답한다.
HTTP Method로 API 통신을 할 수 있다는 것은 알겠는데, CRUD의 관점에서 Create에 해당하는 메소드가 GET, Read에 해당하는 메소드가 POST인 것도 알겠는데.. 언제 GET을 쓰고 언제 POST를 써야하지?라고 생각해보면 답을 낼 수가 없었다. 앞으로 더 알아가봐야겠지만, 수업 내용을 나름의 스토리를 붙여 정리해본 것이 아래와 같다.
GET : 데이터 전달 방식 1
1) 클라에서 서버에 있는 리소스를 가져올 때 사용한다.
2) 백엔드 서버의 DB에 변동이 일어나지 않을 때 사용한다. (어디에서 요청을 해도 동일한 결과를 반환해야 한다)
3) 전송했던 데이터가 브라우저의 히스토리에 접속했던 주소와 함께 남아 있어 보안성에 취약하다.
4) 전송 데이터가 주소에 붙는다.
POST : 데이터 전달 방식 2
1) 클라에서 서버에 데이터를 전송할 때 사용한다.
2) HTML form 태그가 반드시 필요
3) 한글 데이터일 경우 UTF-8로 변환시켜서 전송해줘야 안 깨진다. ex. request.setCharacterEncoding("utf-8");
3) 브라우저에 전달되는 데이터가 남지 않아서 보안성에 강하다.
4) 전송하는 데이터가 주소에 붙지 않고, 전송 객체의 메시지 바디를 통해 전달된다.
[추가] MVC와 Rest API 개발의 차이
MVC : 대표적으로 JSP 개발 - 파일의 경로를 문자열 타입으로 반환한다.
REST API : 대표적으로 React 개발 - API를 JSON타입으로 반환하는 과정을 거침
'공부 > 네트워크' 카테고리의 다른 글
[Servlet] 도메인을 가진 웹서버 만들기 (0) | 2022.04.13 |
---|---|
[Network] WAS(Web Application Server) (0) | 2022.03.31 |
[Network] Cookie와 Session (0) | 2022.03.30 |
[Network] API, RESTful API (0) | 2022.03.29 |
[Network] OSI 7 Model, TCP/IP Model, IP (0) | 2022.03.04 |