[Dairy] S.C.C 3일차 / HTTP와 사용하는 메소드
금일 공부 내용
- Stateful, Stateless
- Stateful
1. 특징
- 상태 유지로 기존의 요청에 대한 데이터 및 상태를 확인 가능
- 같은 서버에 요청해야함
- 서버는 다양한 이유로 동작하지 않을 수 있다.
- 요청 트래픽이 몰리게 되면 상태를 유지하는 것에 Resource가 많이 소모됨
- Stateless
1. 특징
- 상태 유지 불가능으로 기존 요청 유지가 불가함
- 서버의 변경에 대한 에러는 없음
- Scale Out 수평 확정성이 높다.
- 서버 증설이 용이하다.
- 클라이언트의 처리 데이터 수가 늘어나고 요청 데이터 수도 늘어난다.
- 한계점
- WebApplication을 만들 때 서버의 확장성을 고려하여 최대한 Stateless하게
만들어야함
- 해결방안
- 추후에 배울 Cookie, Session, Token 등을 활용하여 이러한 한계를 극복한다.
- Connectionless, Connection
- Connectionless
-장점
1. 서버 자원을 효율적으로 사용할 수 있음
-단점
1. 요청이 추가적으로 오게되면 연결을 새로 해야함
2. 웹사이트의 HTML, CSS JS 이미지 등의 정적 자원 모두를 다시 다운로드 해야
함
-해결방안
1. HTTP 지속연결로 문제를 해결
HTTP 지속연결
- 하나의 요청에 필요한 요청들이 모두 응답될 때까지 연결을 유지
- 연결을 한번만 맺고 끊기 때문에, Connectionless 방식보다 연결 횟수가 적음
ex) 3way handshake
- html + css + js + 이미지
HTTP
- 특징
- TEXT, IMAGE, FILE, HTML, JSON 등 다양한 형태의 데이터가 HTTP를 통해 전송된다.
HTTP에도 버전이 존재하며 그중 대부분 HTTP/1.1 (TCP)을 사용한다. 현대에는 HTTP/2,
HTTP/3 (UDP)의 사용량이 급속도로 증가하는 추세이다.
- HTTP는 인터넷 상에서 불특정 다수의 통신 환경을 기반으로 설계되었다. 만약 서버에서 다
수의 클라이언트와 상태나 연결을 계속 유지해야 한다면 이에 따른 많은 서버의 리소스가
필요하다.
- 위에서 설명한 각 연결 및 상태에 대한 용어를 참고
- 구조

Method
- 요청의 의도를 가진 GET, POST, PUT, PATCH, DELETE 등이 있다.
- Create - POST
- 리소스의 생성과 바디 데이터를 포함하여 데이터를 서버 측에 전송하는 메소드
- Read - GET
- Query String이 있는 경우
- 특별한 조건이 없어 전체의 데이터를 수신할 때 사용한다.
- Query String이 없는 경우
- 조건으로 검색 및 조회 시에 특정 소스를 전달 받을 수 있다.
- Update - PUT(전체), PATCH(일부)
- Delete - DELETE
- Request Target