소켓은 연결을 유지해야해서 비효율적이에요..
계속 커넥션을 물고 있는 것이 효율적인가..?
사이트에 남아 있는 것에 비해 클릭수가 적으면 소켓이 더 비효율적이다.
소켓이 유리해지는 초당 통신량을 비교해보고 http통신vs소켓통신 골라야하는듯
1. http 통신도 내려가면 극일부예외를 제외하고는 소켓으로 구현되어 있습니다
2. http가 stateless다보니 연결을 유지하지 않아서 비효율적이라 http keep-alive 등의 옵션으로 세션 유지하는 방법을 사용합니다.
3. http 통신을 하는건 어플리케이션단의 프로토콜 통일을 위해서 주로 사용합니다
아모튼 소켓이 연결을 유지해야해서 비효율적인 것은 아닙니닷
Connection을 만들고 끊는 작업이 비효율적임 -> keep-alive옵션으로 …
그리고 아까도이야기했지만 http도 내려가면 소켓입니다
HTTP도 결국 TCP 연결이에요
[학재] [오후 4:01] http 통신은 기본적으로
[학재] [오후 4:01] 하나 전송하고 끊는다고 했잖아요
[학재] [오후 4:01] 그런데 저희가 사용하는 웹은
[학재] [오후 4:01] 그렇지않아요
[학재] [오후 4:01] 한 페이지에서도
[학재] [오후 4:01] 이미지마다 따로 리소스를 불러와요
[학재] [오후 4:01] js도그렇고
[학재] [오후 4:01] css도그렇고
[학재] [오후 4:01] 다 따로따로
[학재] [오후 4:01] 연결을 맺고 가져와야해요
[학재] [오후 4:01] 근데 문제는
[학재] [오후 4:01] http의 기본 특성상
[학재] [오후 4:02] 하나를 받아오는데 하나의 연결을 사용하면
[학재] [오후 4:02] 100개의 이미지를 받아오는데는 100번 연결을 맺었다 끊었다 해야해요
[학재] [오후 4:02] 뿐만아니라
[학재] [오후 4:02] http는
[학재] [오후 4:02] 해당 라인의 속도를
[학재] [오후 4:02] 처음에 1이라는 속도로 시작해서
[학재] [오후 4:02] 제대로 전송되는게 확인하면
[학재] [오후 4:02] 속도를 조금씩 올려가면서
[학재] [오후 4:02] 전송을 합니다
[학재] [오후 4:02] 그럼 100개의 커넥션이
[학재] [오후 4:02] 전부
[학재] [오후 4:02] 1의 속도로 시작해요
[학재] [오후 4:02] 만약 커넥션을 재활용한다면
[학재] [오후 4:02] 1로 시작한 커넥션이
[학재] [오후 4:02] 다음 파일을 받아올땐
[학재] [오후 4:03] 예를들면
[학재] [오후 4:03] 100의 속도로 전송을 시작할 수 있어요
[학재] [오후 4:03] 그래서
[학재] [오후 4:03] 커넥션을 맺는데 들어가는 비용과
[학재] [오후 4:03] 그 매번 떨어지는 속도를
[학재] [오후 4:03] 다시 끌어올리는데 소모되는 시간이라는 비용을
[학재] [오후 4:04] 고려한다면
[학재] [오후 4:04] http 커넥션을 재활용하는게
[학재] [오후 4:04] 좋겠죠
[학재] [오후 4:04] keep-alive는
[학재] [오후 4:04] 이 커넥션을
[학재] [오후 4:04] 최대 몇 번 재활용할지
[학재] [오후 4:04] 그리고 timeout은 어떻게 될지
[학재] [오후 4:04] 설정하게 됩니다
말씀해주신거처럼 http가 2.0까지 tcp위에 올라가기때문에
0rtt 설명 링크 : https://blog.cloudflare.com/ko-kr/even-faster-connection-establishment-with-quic-0-rtt-resumption-ko-kr/
http 2.0까지 tcp기반이었다면 http 3.0은 UDP를 기반으로한 QUIC과 TLS가 아예 합쳐져 있는 모습>..?
QUIC안에 TLS같은 암호화/인증이 포함되어 있습니다..
'무지성 메모' 카테고리의 다른 글
■ string클래스의 역순 출력 함수 (0) | 2022.03.10 |
---|---|
■ char배열의 stream은 왜 안되는걸까? (0) | 2022.03.09 |
■ @RequestBody는 언제 붙여야 하는가 ■ @Transactional 더티체킹? ■ x-www form-urlencoded json 차이 (0) | 2022.03.07 |
■ yaml파일이란 무엇인가..? (.yml) (0) | 2022.03.04 |
■ HTTP API?? REST API??의 차이? ■ MIME타입 ■ @Controller @RestController (0) | 2022.03.03 |