[Network] 14. HTTP의 특징을 설명해주세요.
zbqmgldjfh opened this issue · 1 comments
HTTP의 특징을 설명해주세요.
키워드
HTTP
, HTTP 원리
, 네트워크
, Network`
HTTP (HyperText Transfer Protocol) 의 특징
원래 HTTP는 html 파일을 주고받기 위한 프로토콜이였지만, 현재는 거의 모든것을 전송하는 프로토콜이 되었다.
이에 대한 특징을 알아보자!
HTTP 특징
Stateless
-
Stateless
서버가 클라이언트의 상태정보를 보존하지 않는다. 장점으로는 서버의 확장성(Scale Out)이 높아진다.
단점으로는 클라이언트가 서버로 넘기는 데이터의 양이 많다는 점이 있다. -
Stateless 한계
일반적으로 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지해야 한다.
이때 브라우저 쿠키와 서버 세션등을 사용해서 상태를 유지한다 (예를 들어 셰션을 활용하면 장바구니 기능을 이용할 수 있다)
따라서 클라이언트 서버에 요청시 데이터를 많이 보내야함 (상태를 보관할 수 없으니 감안하여 모두 보내는 꼴)
=> 상태 유지는 최소한만 사용해야 한다
Connectionless
-
Connectionless
HTTP는 기본이 연결을 유지하지 않는 모델이다. 이 덕분에 일반적으로 초 단위의 이하의 빠른 속도로 응답한다.
1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이 하로 매우 작다. 왜냐하면 수천명이 접속해 있어도 같은 시간인 12시 0초에 딱! 검색버튼을 누르는 수는 생각보다 많지 않다. 따라서 연결을 유지하기 보단, 비연결성 쪽이 효율적이다.
=> 비연결성 덕분에 서버 자원을 매우 효율적으로 사용할 수 있다. -
Connectionless 한계
TCP/IP 연결을 새로 맺어야 함 => 즉, 3 way handshake 시간 추가되기때문에 느려진다.
웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, css, 추가 이미지 등 수 많은 자원이 함께 다운로드된다. 처음에 HTML 파일을 요청하기위에 TCP 연결을 한 후 파일을 열어보니 js파일이 포함되어있다. 이러면 또다시 3 way handshake를 통하여 TCP 연결을 한후 다운 받아야하기에 느려진다.