http의 가장 중요하고 단순한 특징
http는 클라이언트와 서버 구조로 되어있다. 이말인 즉슨
그럼 클라이언트와 서버를 나누는 것이 왜 중요하느냐 하면은 분리함으로써 각각의 부분을 특화 시킬 수 있다
클라이언트와 서버 각각 자신의 역할에만 집중할 수 있다.
무상태(stateless)란
"서버가 클라이언트의 상태를 보존하지 않는다는 것"이다.
http의 경우에는 클라이언트가 연결에 필요한 모든 정보를 가지고 서버와 통신한다.
1. 그래서 하나의 서버가 오류가 날 경우, 바로바로 다른 서버로 대체해서 연결할 수 있고,
2. 크기에 따라 가변적으로 쉽게 서버를 더 증설할 수 있다.
하지만 항상 stateless로는 설계할 수 없다
로그인 같이 상태를 유지해야 할 경우에는 stateless만 사용할 수 없다.
-> 보통 이럴때에는 쿠키나 세션등을 이용해서 유지한다, 상태 유지는 최소한으로 사용하는게 좋다.
http는 비연결성을 가진다.
즉 요청과 응답을 받을때에만 클라이언트와 서버가 연결되고 평소에는 연결을 끊어 놓는다.
이러한 방식은 자원을 효율적으로 관리할 수 있으나 (항상 연결을 하는거에 비해 자원을 덜 소모하므로) 만약 짧은 시간에 반복적으로 계속 요청이 발생한다면, 요청을 할때마다 연결을 해야하므로 비효율적이 되어버린다.
--> 이것을 해결하기 위해 일정시간 동안 연결을 유지시키는 지속 연결(persistent connections)을 사용한다.