- 클라이언트 서버 구조
- 무상태 프로토콜, 비연결성
- HTTP 메시지
- 단순함, 확장 가능
클라이언트 UX, UI - 서버 비지니스 로직
ㄴ 클라이언트와 서버를 분리함으로써 기능을 서로 독립적으로 진행 및 발전이 가능함
서버가 클라이언트의 상태를 보존 X
장점 : 서버 확장성이 높음 -> 응답 서버를 쉽게 바꿀 수 있음 (무한한 서버 증설 가능)
ㄴ 스케일 아웃 (수평 확장) 유리
단점 : 클라이언트가 추가 데이터를 전송해야됨
ㄴ 상태 유지 해야되는 경우 로그인 -> 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
Stateful : 클라이언트의 이전 상태를 보존, 상태 유지 <-> Stateless
- TCP/IP 연결을 매번 새로 맺어야함 - 3 way handshake 시간 추가
- 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 여러 자원들을 함께 다운로드 해야됨
-> 지금은 위 두 문제를 HTTP 지속 연결 (Persistent Connections)로 문제 해결함- HTTP 지속 연결
- 기존에 요청 시 HTML, 자바 스크립트, 이미지 등 자원들을 따로 연결, 요청-응답, 종료를 반복해서 받아야했음
-> 이를 한번 연결로 특정 시간동안 모든 자원 요청-응답을 받고 종료
- 종류 : GET (조회), POST (요청 내역 처리), PUT, DELETE 등등
- 서버가 수행해야 할 동작을 지정
- absolute-path?query
절대경로
요청 성공, 실패를 나타내는 코드
- 200 성공
- 400 클라이언트 요청 오류
- 500 서버 내부 오류
- 거의 모든 형태의 데이터 전송 가능
- HTML, Text
- Image, 음성, 영상, 파일
- JSON, XML (API)
- 서버간에 데이터 주고 받을 때에도 대부분 HTTP 사용
참고 자료