[Network] Connection Timeout, Socket Timeout, Read Timeout의 차이
·
Computer Science/Network
백엔드 개발을 하다 보면 외부 API를 호출하거나 서버 간 통신을 할 때 “타임아웃(timeout)”이라는 단어를 자주 접하게 된다.그런데 이 timeout에도 여러 종류가 있다.오늘은 가장 혼동되기 쉬운 세 가지 Timeout을 알아보자.Connection TimeoutSocket TimeoutRead Timeout타임아웃(Timeout)이란?네트워크 타임아웃은 서버로 요청을 보냈을 때, 일정 시간 내에 응답을 받지 못하면 발생하는 현상이다.이는 실패로 간주되어 연결을 끊거나 요청을 재전송하는 계기가 된다.타임아웃을 설정하지 않으면, 클라이언트는 무한히 기다릴 수 있기 때문에 리소스 고갈과 장애로 이어질 수 있다.타임아웃 기본값 (Java)Java의 HttpURLConnection은 기본적으로 conn..
[Network] 리버스 프록시 vs 포워드 프록시
·
Computer Science/Network
프록시(Proxy)란?프록시(Proxy)는 클라이언트와 서버 사이에 위치해서 요청과 응답을 중계해주는 역할을 한다.즉, 사용자가 직접 서버와 통신하는 게 아니라 프록시를 통해 간접적으로 통신하는 구조다.프록시를 사용하는 이유는 여러 가지가 있다.대표적으로는 보안 강화, 성능 향상, 통신 비용 절감이 있고,프록시가 위치하는 곳에 따라 포워드 프록시와 리버스 프록시로 나뉜다.포워드 프록시 (Forward Proxy)클라이언트 ↔ 프록시 ↔ 서버클라이언트와 인터넷 사이에 위치하는 프록시다.클라이언트가 직접 인터넷에 접근하지 않고, 프록시 서버를 통해 요청을 보내게 된다.캐싱포워드 프록시는 자주 요청되는 파일들을 캐싱해서원 서버에 요청하지 않고도 빠르게 응답을 줄 수 있다.예를 들어, HTML, JS, CSS,..
[Network] HTTP, HTTPS란?
·
Computer Science/Network
HTTP/1.0하나의 연결당 하나의 요청만 처리할 수 있는 구조.서버로부터 파일을 가져올 때마다 TCP의 3-way handshake가 반복되어야 하므로, RTT(Round Trip Time)가 증가함.RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간(패킷 왕복시간).문제점: 서버 부담 증가, 사용자 응답시간 지연.이러한 한계를 극복하기 위해 HTTP 자체를 개선하기도 했지만,동시에 다음과 같은 웹 최적화 기법들도 사용되었다:이미지 스프라이트코드 압축이미지 Base64 인코딩이미지 스프라이트다수의 이미지를 하나로 합쳐서 다운로드 요청 횟수를 줄이는 기법.이후 background-image의 position 속성을 이용해 해당 위치의 이미지를 보여줌.많은 개별 이미지를 동시에..