-
(HTTP) 8 - connectionless (비연결성)개발/HTTP 2024. 10. 31. 09:04
TCP/IP 의 경우 기본적으로 연결을 유지한다.
따라서 서버가 연결을 유지하는 동안 서버 자원을 계속 소모하게 된다.
이와 다르게 TCP/IP 연결을 요청을 주고 받을때만 한다면
서버는 최소한의 자원만 유지하면 된다.
■ 비연결성
- HTTP 는 기본이 연결을 유지하지 않는 모델
- 일반적으로 초 단위 이하의 빠른 속도로 응답
- 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음
ex) 웹 브라우저에서 계속 연속해서 검색 버튼 누르지 않는다.
- 서버 자원을 매우 효율적으로 사용할 수 있다.
■ 비연결성 한계와 극복
- TCP/IP 연결을 새로 맺어야 함 -> 3 way handshake 시간 추가
- 웹 브라우저로 사이트를 요청하면 HTML 뿐 아니라
자바스크립트, CSS, 추가 이미지 등 수 많은 자원 함께 다운로드
- 지금은 HTTP 지속 연결(Persistent Connections) 로 문제 해결
- HTTP/2, HTTP/3 에서 더 많은 최적
과거에는 연결 -> 응답 -> 종료 이렇게 매번 연결하고 응답 받아서 시간이 더 걸렸다.
현재 HTTP 지속 연결을 사용하면 대부분 페이지가 요청하고 HTML 받을 때까지 연결을 유지한다.
HTTP/3 UDP 사용해서 연결 속도도 줄였다.
■ 서버 개발자 가장 어려운 점
- 같은 시간에 맞춰 발생하는 대용량 트래픽
ex) 선착순 이벤트, 명절 ktx 예약, 학과 수업 등록
ex) 6시 선착순 이벤트 -> 수만명 동시 요청
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'개발 > HTTP' 카테고리의 다른 글
(HTTP) 10 - HTTP 메서드 (GET, POST, PUT, PATCH, DELETE) (0) 2024.10.31 (HTTP) 9 - HTTP 메시지 (0) 2024.10.31 (HTTP) 7 - Stateful(상태 유지), Stateless(무상태) (0) 2024.10.31 (HTTP) 6 - HTTP 란? (0) 2024.10.30 (HTTP) 5 - URI 와 웹 브라우저 요청 흐름 (0) 2024.10.30