[HTTP강의] HTTP 특징

2022. 5. 23. 00:12개발공부/HTTP

728x90

[HTTP강의] HTTP 특징

본 글은 인프런 김영한님 강의를 정리한 글입니다. 자세한 강의내용은 강의를 통해 들어보시길 추천드립니다.


HTTP의 특징

  • 클라이언트-서버 구조
  • 무상태(Stateless)
  • 비연결성(Connectionless)

1) 클라이언트-서버 구조

다들 알고계시는 특징이지만, HTTP가 초기에 생겼을 땐 클라이언트, 서버로 구분되지 않고 한 곳에서 요청-응답을 처리했다고 합니다.
현재 HTTP 통신에 대한 로직은 서버 한 곳에서 담당할 수 있기 때문에 클라이언트는 UI,UX과 같은 사용자 사용성, 편리성을
높이는 데에 집중할 수 있습니다.

2) 무상태(Stateless)

말 그대로 상태가 보존되지 않고 통신을 하는 1회에 한해 연결을 유지하는 특징입니다. 장점은 요청할때마다 모든 정보를에 포함시켜 보내기 때문에
서버가 중간에 변경되거나 확장되어도 응답에 문제가 없습니다. 따라서 서버를 확장하기에(scale up) 용이한 방식입니다. 하지만 요청 시 한번에 보내는 정보가 많다는 단점도 있습니다.
그리고 로그인과 같은 상태 유지가 필요할 때 한계를 지니기 때문에 브라우저의 쿠키(or 로컬스토리지)와 서버 세션을 이용해 해결할 수 있습니다.

3) 비연결성(Connectionless)

계속해서 연결되어 있다면, 자원소모가 클 것입니다. 따라서 비연결성인 HTTP는 장점을 지닙니다. 하지만 통신을 할 때마다 TCP/IP 연결을 서로 해야되기 때문에 통신 시간이 걸린다는 단점이 있습니다.
이를 보완하기 위해선 TCP/IP가 한번 연결되었을 때 지속 연결을 시켜두고, 데이터를 모두 전송된 다음 연결을 끊는 HTTP 지속연결(Persistence Connection)방법이 있습니다.
HTTP 2,3 버전에선 더 고도화된 방법으로 이를 보완해주고 있고, 특히 3에선 UDP를 활용해 통신속도를 높였다고 합니다.

업무에서의 어려운 점

같은 시간에 맞춰 발생하는 대용량 트래픽은 무상태 특징을 가진 HTTP도 핸들하기 어렵기 때문에 분산화가 필요하며 그때 정적페이지를 두어서 동시접속 분산화를 유도할 수 있다고 합니다.
하지만 00시에 맞춰 한다면 예상되는 트래픽에 따른 아키텍처 설정이 불가피하다고 생각합니다.


참조: 인프런 김영한님 HTTP 강의

'개발공부 > HTTP' 카테고리의 다른 글

[HTTP강의] HTTP 캐시  (0) 2022.05.26
[HTTP강의] HTTP 헤더  (0) 2022.05.25
[HTTP강의] HTTP 상태코드  (0) 2022.05.24
[HTTP강의] HTTP 메서드  (0) 2022.05.23
[HTTP강의] TCP/UDP와 URI  (0) 2022.04.21