[서버] connection timeout, recv timeout, send timeout이란?
각 브라우저는 개발자 모드라는게 있어서 http request/response 등에 대한 정보를 볼 수 있습니다.
(일부러 속도가 느린) 미국에 있는 서버로 접속을 하고 각각 단계에서 걸린 시간을 봤습니다. 실제 사례를 보고 공부하면 더 이해가 잘 되잖아요 ㅎㅎ
여러 단계에 대한 자세한 설명이 있는데 Timing 중에
Connection, TLS setting?, Sending, Waiting, Receiving에 대해 알아보겠습니다.
Connection(연결하기)
TCP 연결에 걸린 시간(Three Way Handshake)
1) 상대에게 통신을 하고 싶다는 메시지를 보낸다. (SYN)
2) 상대는 그 메시지에 대한 응답 + 나도 통신 준비가 되었다는 메시지를 보낸다. (SYN-ACK)
3) 2번에서 받은 메시지에 응답을 보낸다. (ACK)
connection timeout은 지정한 시간 내에 connection이 설정되지 않으면 발생합니다.
TLS setting(TLS 설정)
Transparent Layer Security의 약자로 SSL 기반한 기술입니다. 표준에 명시된 정식 명칭이 TLS인데 SSL이 더 많이 사용되고 있다고 합니다. 저도 SSL은 자주 들어봤는데 TLS는 처음 듣네요. LS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS(HTTP Secure)라고 합니다.
Sending(보내기)
HTTP request를 서버에 보내는데 걸린 시간
send timeout은 지정한 시간 내에 request가 전달되지 않으면 발생합니다.
Waiting(기다리기)
서버로부터 응답을 받기 위해 걸린 시간
Receiving(받기)
서버 응답을 다 읽는데 걸린 시간
recv timeout은 지정한 시간 내에 response를 받지 못하면 발생합니다.
Connection과 TLS setting만 유의하면 나머지는 이해하기 어렵지 않아 보입니다.
참고
developer.mozilla.org/ko/docs/Tools/Network_Monitor/request_details
www.guru99.com/tcp-3-way-handshake.html
댓글 영역