HTTP는 인터넷에서 사용하는 네트워크 통신의 프로토콜이다.
HTTP의 특징
-
무상태(stateless)
무상태(stateless) 프로토콜은 각 요청이 독립적으로 처리되며,
서버가 클라이언트의 요청을 기억하지 않는다.
따라서 클라이언트가 서버에 요청할 때마다, 이전 요청들을 함께 보내줘야 한다.
로그인 등 상태 유지가 필요한 경우 cookie, token, session등을 활용해야 한다
-
비연결성(connectionless)
요청이 끝나면 더이상 연결을 유지하지 않는다.
HTTP 메시지 구조
- HTTP Method: 클라이언트의 의도를 표현하는 명령어로 GET, POST, PUT, PATCH, DELETE 등이 있다
- 상태코드: 서버의 응답 상태를 나타낸다.
1(정보), 2(성공), 3(리다이렉션), 4(클라이언트 에러), 5**(서버 에러)
- HTTP Header: Request와 response에 대한 부가 정보를 담고 있다.
HTTP API 설계
HTTP API는 Restful하게 설계해야 사용성과 확장성이 높아진다.
최소 성숙도 레벨 2(리소스와 메서드의 명확한 분리)를 지켜줘야 한다.
Servlet, WAS
- Servlet은 자바에서 요청과 응답을 처리하는데 사용되는 객체이다.
- Servlet Container에서 Servlet객체를 싱글톤(singleton)으로 관리해 자원을 효율적으로 사용한다
- 웹 어플리케이션 서버(WAS)는 여러 사용자의 요청을 Multi Thread로 처리하여 높은 성능을 유지할 수 있다
SSR과 CSR
- SSR(Server-Side Rendering):
서버에서 완성된 HTML 페이지를 브라우저로 보내주는 방식
- CSR(Client-Side Rendering):
브라우저에서 HTTP API 통신으로 데이터를 받아 동적으로 화면을 구성하는 방식